diff --git a/doc/README.md b/doc/README.md
index 0e8c5a8ce..a6495126f 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -2,7 +2,7 @@
# Rougail
-Rougail est un bibliothèque python3 qui permet de charger des dictionnaires (fichiers au format XML ou YAML), de charger les variables dans Tiramisu et de générer des templates Cheetah ou Jinja.
+Rougail est un bibliothèque python3 qui permet de charger des dictionnaires (fichiers au format YAML), de charger les variables dans Tiramisu.

@@ -19,23 +19,11 @@ Rougail est un bibliothèque python3 qui permet de charger des dictionnaires (fi
### Les variables
- - [Les familles](family/README.md)
- [Les variables](variable/README.md)
-
-### Les services
-
- - [La gestion d'un fichier](service/file.md)
- - [La gestion d'un certificat](service/certificate.md)
- - [La gestion d'un fichier de service systemd](service/override.md)
- - [La gestion d'une ip](service/ip.md)
+ - [Les familles](family/README.md)
### Les contraintes
- [Les calculs automatiques](fill/README.md)
- [Les vérifications des valeurs](check/README.md)
- [Les conditions](condition/README.md)
-
-## Les templates
-
- - [Les moteurs de templates](template/README.md)
- - [Les patches](template/patch.md)
diff --git a/doc/check/function.md b/doc/check/function.md
index 2966de16b..487afd46d 100644
--- a/doc/check/function.md
+++ b/doc/check/function.md
@@ -6,49 +6,22 @@ Une fonction de vérification est une fonction complémentaire au type qui perme
Voici un exemple simple de validation des valeurs :
-```xml
-
-
-
-
-
- my_variable
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: my_variable
-constraints:
-- check:
- - name: islower
- target:
- - text: my_variable
-```
-
-
-La [cible (de type variable)](../target/variable.md) de la fonction de vérification est ici "my_variable".
-
-Dans cette exemple, la valeur de la variable "my_variable" va être validé par la fonction islower.
-
-Voici le contenu de la fonction :
-
-```python
-def islower(value):
- if value is None:
- return
- if not value.islower():
- raise ValueError(f'"{value}" is not lowercase string')
+---
+version: '1.0'
+my_variable:
+ validators:
+ - type: jinja
+ jinja: |+
+ {% if rougail.my_variable and not rougail.my_variable.islower() %}
+ {{ rougail.my_variable }} is not lowercase string
+ {% endif %}
```
Une fonction de vérification doit prendre en compte 2 aspects important :
- la valeur peut ne pas être renseigné (même si la variable est obligatoire), la valeur None doit être prise en compte
-- si la valeur est invalide, il faut faire un raise de type ValueError avec, si possible, un message explicite.
+- si la valeur est invalide, il faut renvoyer une phrase avec un message explicite.
À partir de maintenant seule None et des valeurs en minuscule seront autorisés.
@@ -58,20 +31,18 @@ Il est possible de définir des [paramètres](../param/README.md) à cette fonct
Dans la contrainte, il est possible de spécifier le niveau d'erreur et le mettre en avertissement :
-```xml
-
- my_variable
-
-```
-
-En YAML :
-
```yml
-- check:
- - name: islower
- level: warning
- target:
- - text: my_variable
+---
+version: '1.0'
+my_variable:
+ validators:
+ - type: jinja
+ jinja: |+
+ {% if rougail.my_variable and not rougail.my_variable.islower() %}
+ {{ rougail.my_variable }} is not lowercase string
+ {% endif %}
+ params:
+ warning: true
```
Dans ce cas une valeur avec une majuscule sera accepté, mais un message d'avertissement apparaitra.
diff --git a/doc/check/redefine.md b/doc/check/redefine.md
index 414ee9208..4bf6a2d60 100644
--- a/doc/check/redefine.md
+++ b/doc/check/redefine.md
@@ -4,55 +4,31 @@
Dans un premier dictionnaire déclarons notre variable et sa fonction de vérification :
-```xml
-
-
-
-
-
- my_variable
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: my_variable
-constraints:
-- check:
- - name: islower
- target:
- - text: my_variable
+---
+version: '1.0'
+my_variable:
+ validators:
+ - type: jinja
+ jinja: |+
+ {% if rougail.my_variable and not rougail.my_variable.islower() %}
+ {{ rougail.my_variable }} is not lowercase string
+ {% endif %}
```
Dans un second dictionnaire il est possible de redéfinir le calcul :
-```xml
-
-
-
-
-
- my_variable
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: my_variable
- redefine: true
-constraints:
-- check:
- - name: isspace
- target:
- - text: my_variable
+---
+version: '1.0'
+my_variable:
+ redefine: true
+ validators:
+ - type: jinja
+ jinja: |+
+ {% if rougail.my_variable and ' ' in rougail.my_variable %}
+ {{ rougail.my_variable }} has a space
+ {% endif %}
```
Dans ce cas, la fonction "islower" exécuté. Si cette fonction ne retourne pas d'erreur, la seconde fonction "isspace" sera exécuté.
@@ -65,44 +41,24 @@ Dans un second dictionnaire il est possible de supprimer cette vérification.
Dans un premier dictionnaire déclarons notre variable et notre fonction de vérification :
-```xml
-
-
-
-
-
- my_variable
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: my_variable
-constraints:
-- check:
- - name: islower
- target:
- - text: my_variable
+---
+version: '1.0'
+my_variable:
+ validators:
+ - type: jinja
+ jinja: |+
+ {% if rougail.my_variable and not rougail.my_variable.islower() %}
+ {{ rougail.my_variable }} is not lowercase string
+ {% endif %}
```
Dans un second dictionnaire supprimer cette vérification :
-```xml
-
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: my_variable
- redefine: true
- remove_check: true
+---
+version: '1.0'
+my_variable:
+ redefine: true
+ validators:
```
diff --git a/doc/condition/condition.md b/doc/condition/condition.md
index 1bfdcfe4e..336cdb5ca 100644
--- a/doc/condition/condition.md
+++ b/doc/condition/condition.md
@@ -1,47 +1,53 @@
-# Les conditions
+# Les propriétés calculées
-## Un condition
+Les propriétés calculées permettent d'ajouter ou de supprimer des propriétés à une [variable](../variable/README.md) ou une [famille](../family/README.md) suivant le contexte.
-Les conditions permettent d'ajouter ou de supprimer des propriétés à une [variable](../variable/README.md), une [famille](../family/README.md), un [service](../service/README.md), un [fichier](../service/file.md) ou une [ip](../service/ip.md) suivant le contexte.
+Nous allons nous concentrer ici sur la proprété `hidden`, mais ce qui est dit est vrai pour toutes les propriétés.
-Nous allons nous concentrer ici sur la condition hidden_if_in, mais [il existe d'autre conditions](conditions.md).
+## Une propriété calculée de type variable
-La condition hidden_if_in permet de cacher une variable où une famille à l'utilisateur, mais cette variable est toujours accessible dans un calcul, un vérification ou dans un template.
+Une variable peut donc être calculé via la résultat d'une autre variable.
+Attention, cette autre variable doit obligatoirement être de type `boolean` :
-```xml
-
-
-
-
-
-
-
- True
- my_variable
-
-
-```
-
-En YAML :
```yml
-variables:
-- variable:
- name: condition
- type: boolean
-- variable:
- name: my_variable
-constraints:
-- condition:
- - name: hidden_if_in
- source: condition
- param:
- - text: true
- target:
- - text: my_variable
+---
+version: '1.0'
+condition:
+ type: boolean
+my_variable:
+ hidden:
+ type: variable
+ variable: rougail.condition
```
-Le [paramètres](../param/README.md) de la condition permet de définir les valeurs que doit avoir la source pour appliquer l'action.
+Si la valeur de la variable "rougail.condition" est `True` alors la variable "rougail.my_variable" est cachée.
+
+## Une propriété calculée de type jinja
+
+Il est possible d'écrire la condition en Jinja :
+
+```yml
+---
+version: '1.0'
+condition:
+ default: 'do not hide!'
+my_variable:
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.condition and rougail.condition == "hide!" %}
+ true
+ {% else %}
+ false
+ {% endif %}
+```
+
+Dans ce cas la variable est cachée si la valeur de la variable "rougail.condition" est `hide!` et elle n'a pas caché pour tout autre valeur.
+Attention toujours prendre en considération que "rougail.condition" peut être égale à `None`.
+
+Il est possible d'ajouter des [paramètres](../param/README.md) à la condition de type `jinja`.
+Il est possible d'ajouter des paramètres à la fonction
La [cible](../target/README.md) de la condition est ici "my_variable".
diff --git a/doc/dev/README.md b/doc/dev/README.md
index 53d3bbea2..a3abacace 100644
--- a/doc/dev/README.md
+++ b/doc/dev/README.md
@@ -1,58 +1,42 @@
# La bibliothèque Rougail
-Rougail est une bibliothèque qui permet de charger simplement des dictionnaires et de générer des templates.
+Rougail est une bibliothèque de gestion de configuration qui permet de charger simplement des variables.
Dans les exemples suivant, nous utiliserons une configuration particulière de Rougail.
Vous retrouverez toutes les options pour [personnaliser les répertoires utilisés](config.md).
-Le script contiendra donc les éléments de configuration suivant :
+Pour changer la configuration il faut importer la variable RougailConfig et changer les valeurs :
```python
from rougail import RougailConfig
RougailConfig['dictionaries_dir'] = ['dict']
-RougailConfig['templates_dir'] = ['tmpl']
-RougailConfig['tmp_dir'] = 'tmp'
-RougailConfig['destinations_dir'] = 'dest'
-RougailConfig['functions_file'] = 'funcs/functions.py'
-```
-
-Penser a créer les répertoires :
-
-```bash
-$ mkdir dest dict tmp tmpl extras
```
## Convertisons un dictionnaire
-Un dictionnaire est un ensemble d'instruction qui vont permettre de créer des variables.
+Un dictionnaire est un ensemble d'instruction qui vont permettre de créer des familles et des variables.
Commençons par créer un [dictionnaire](../dictionary/rougail.md) simple.
Voici un premier dictionnaire dict/00-base.yml :
```yml
-version: '0.10'
-variables:
-- variable:
- - name: my_variable
- value:
- - text: my_value
+---
+version: '1.0'
+my_variable:
+ default: my_value
```
-Puis, créons les objets [Tiramisu](https://framagit.org/tiramisu/tiramisu) :
+Puis, créons les objets [Tiramisu](https://forge.cloud.silique.fr/gnunux/tiramisu) via la script script.py suivant :
```python
from rougail import Rougail, RougailConfig
-from asyncio import run
-async def main():
- RougailConfig['dictionaries_dir'] = ['dict']
- rougail = Rougail()
- config = await rougail.get_config()
- print(await config.value.dict())
-
-run(main())
+RougailConfig['dictionaries_dir'] = ['dict']
+rougail = Rougail()
+config = rougail.get_config()
+print(config.value.dict())
```
Exécution le script :
@@ -78,28 +62,22 @@ RougailConfig['extra_dictionaries']['example'] = ['extras/']
Ensuite créons un dictionnaire extra extras/00-base.yml :
```yml
-version: '0.10'
-variables:
-- variable:
- - name: my_variable_extra
- value:
- - text: my_value_extra
+---
+version: '1.0'
+my_variable_extra:
+ default: my_value_extra
```
-Construisons les objets Tiramisu :
+Puis, créons les objets [Tiramisu](https://forge.cloud.silique.fr/gnunux/tiramisu) via la script script.py suivant :
```python
from rougail import Rougail, RougailConfig
-from asyncio import run
-async def main():
- RougailConfig['dictionaries_dir'] = ['dict']
- RougailConfig['extra_dictionaries']['example'] = ['extras/']
- rougail = Rougail()
- config = await rougail.get_config()
- print(await config.value.dict())
-
-run(main())
+RougailConfig['dictionaries_dir'] = ['dict']
+RougailConfig['extra_dictionaries']['example'] = ['extras/']
+rougail = Rougail()
+config = rougail.get_config()
+print(config.value.dict())
```
Exécution le script :
@@ -109,67 +87,18 @@ $ python3 script.py
{'rougail.my_variable': 'my_value', 'example.my_variable_extra': 'my_value_extra'}
```
-## Templatisons un fichier
-
-Un [template](../template/README.md) est un fichier dans lequel on va remplacer les valeurs attendues par le nom des variables.
-
-Premièrement déclarons dans un dictionnaire complémentaire notre template dict/00-template.yml :
-
-```yml
-version: '0.10'
-services:
-- service:
- - name: test
- file:
- - text: /etc/example.conf
-```
-
-Et un template tmpl/example.conf (par défaut il est généré via une configuration particulière de [Cheetah](https://cheetahtemplate.org/) :
-
-```
-The value: %%my_variable
-
-The extra value: %%example.my_variable_extra
-```
-
-Générons le template :
-
-```python
-from rougail import Rougail, RougailConfig
-from asyncio import run
-
-async def main():
- RougailConfig['dictionaries_dir'] = ['dict']
- RougailConfig['templates_dir'] = ['tmpl']
- RougailConfig['tmp_dir'] = 'tmp'
- RougailConfig['destinations_dir'] = 'dest'
- RougailConfig['extra_dictionaries']['example'] = ['extras/']
- RougailConfig['functions_file'] = 'funcs/functions.py'
- rougail = Rougail()
- await rougail.template()
-
-run(main())
-```
-
-Le fichier dest/etc/example.conf est maintenant créé avec le contenu attendu suivant :
-
-```
-The value: my_value
-
-The extra value: my_value_extra
-```
-
## Créons une fonction personnalisé
-Nous créons le dictionnaire complémentaire dict/00-fill.yml pour que la variable "my_variable" soit [calculée](fill/README.md) :
+Nous créons le dictionnaire complémentaire dict/01-function.yml pour que la variable "my_variable_jinja" soit [calculée](fill/README.md) :
```yml
-version: '0.10'
-constraints:
-- fill:
- - name: return_no
- target:
- - text: my_variable
+---
+version: '1.0'
+my_variable_jinja:
+ type: "string"
+ default:
+ type: jinja
+ jinja: "{{ return_no() }}"
```
Puis créons la fonction "return_no" dans functions.py :
@@ -179,41 +108,24 @@ def return_no():
return 'no'
```
-Après avoir reconverti les dictionnaires et regénérer le template nous avons donc le contenu du fichier dest/etc/example.conf :
-
-```
-The value: no
-
-The extra value: my_value_extra
-```
-
-La valeur de la variable "my_variable" est bien calculé à partir de la fonction "return_no".
-
-## Template et systemd
-
-Rougail peut également généré automatiquement le fichier [tmpfiles.d](https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html) pour installer automatiquement les fichiers de configuration au démarrage de la machine.
-
-Pour générer le fichier tmpfiles.d, ajouter l'argument "systemd" à la methode "template" :
+Puis, créons les objets [Tiramisu](https://forge.cloud.silique.fr/gnunux/tiramisu) via la script script.py suivant :
```python
from rougail import Rougail, RougailConfig
-from asyncio import run
-async def main():
- RougailConfig['dictionaries_dir'] = ['dict']
- RougailConfig['templates_dir'] = ['tmpl']
- RougailConfig['tmp_dir'] = 'tmp'
- RougailConfig['destinations_dir'] = 'dest'
- RougailConfig['extra_dictionaries']['example'] = ['extras/']
- RougailConfig['functions_file'] = 'funcs/functions.py'
- rougail = Rougail()
- await rougail.template('systemd')
-
-run(main())
+RougailConfig['dictionaries_dir'] = ['dict']
+RougailConfig['extra_dictionaries']['example'] = ['extras/']
+RougailConfig['functions_file'] = 'functions.py'
+rougail = Rougail()
+config = rougail.get_config()
+print(config.value.dict())
```
-Ainsi le fichier supplémentaire "dest/tmpfiles.d/0rougail.conf" sera créé avec le contenu :
+Exécution le script :
+```python
+$ python3 script.py
+{'rougail.my_variable': 'my_value', 'rougail.my_variable_jinja': 'no', 'example.my_variable_extra': 'my_value_extra'}
```
-C /etc/example.conf 0644 root root - /usr/local/lib/etc/example.conf
-```
+
+La valeur de la variable `my_variable_extra` est bien calculé à partir de la fonction `return_no`.
diff --git a/doc/dev/config.md b/doc/dev/config.md
index bda0d2a8f..006abb637 100644
--- a/doc/dev/config.md
+++ b/doc/dev/config.md
@@ -14,29 +14,17 @@ Pour modifier il suffit de faire :
RougailConfig[key] = value
```
-## Ajout d'une fonction de conversion
-
-Les fonctions de conversion fait parti du moteur de rougail. Il converti les informations des dictionnaires pour créer des variables Tiramisu.
-
-La clef "extra_annotators" permet d'ajouter des fonctions complémentaires.
-
## Configuration de chargement des dictionnaires
### Les répertoires des dictionnaires
Il existe deux types de répertoires de dictionnaires :
-- les dictionnaires principaux avec la clef "dictionaries_dir". La valeur par défaut est ['/srv/rougail/dictionaries']. Cette variable doit contenir la liste des répertoires contenants des dictionnaires.
+- les dictionnaires principaux avec la clef `dictionaries_dir`. La valeur par défaut est `['/srv/rougail/dictionaries']`. Cette variable doit contenir la liste des répertoires contenants des dictionnaires.
-Les dictionnaires sont chargés dans l'ordre des répertoires. Chaque répertoire est chargé les uns après les autres. A l'intérieur de ces répertoires les fichiers XML ou YAML seront classés par ordre alphabétique.
+- les dictionnaires extra avec la clef `extra_dictionaries`. La valeur est un dictionnaire avec l'ensemble des espaces de nom. La clef étant l'espace de nom et la valeur étant une liste de répertoire.
-Il n'y a pas de classement par ordre alphabétique de l'ensemble des fichiers XML ou YAML de tous les répertoires.
-
-Les familles et variables de ces dictionnaires sont classés, par défaut, dans l'espace de nom "rougail". Il est possible de changer le nom de cet espace de nom avec la clef "variable_namespace".
-
-- les dictionnaires extra avec la clef "extra_dictionaries". La valeur est un dictionnaire avec l'ensemble des espaces de nom. La clef étant l'espace de nom et la valeur étant une liste de répertoire.
-
-Par exemple pour ajouter l'extra "example" il faut faire :
+Par exemple pour ajouter l'extra `example` il faut faire :
```python
RougailConfig['extra_dictionaries']['example'] = ['/dir1', '/dir2']
@@ -44,14 +32,6 @@ RougailConfig['extra_dictionaries']['example'] = ['/dir1', '/dir2']
Les dictionnaires sont chargés dans le même ordre que les dictionnaires principaux.
-### La DTD et le schema YAML
-
-Rougail a besoin du fichier de la DTD pour lire les fichiers dictionnaire de type XML et du schema YAML pour les fichiers dictionnaire de type YAML.
-
-Par défaut le fichier de la DTD et le schema YAML sont dans le sous répertoire "data" du répertoire de code. Le nom du fichier est rougail.dtd et rougail.yml.
-
-Pour pouvez changer le nom du fichier DTD avec la clef "dtdfilename" et le nom du schema YAML avec la clef "yamlschema_filename".
-
### Le fichier de fonction
Le fichier qui contient les fonctions personnalisés est géré dans la clef "functions_file" et a comme valeur par défaut "/srv/rougail/functions.py". Cette clef peut contenir une liste s'il y a plusieurs fichiers.
@@ -147,3 +127,10 @@ La méthode d'inclusion des fichiers générés est géré dans la clef "default
## La configuration du moteur de templates
Le moteur de template est géré dans la clef "default_overrides_engine" et a comme valeur par défaut : "cheetah". Les valeurs possible sont "none", "cheetah" ou "jinja".
+
+## Ajout d'une fonction de conversion
+
+Les fonctions de conversion fait parti du moteur de rougail. Il converti les informations des dictionnaires pour créer des variables Tiramisu.
+
+La clef "extra_annotators" permet d'ajouter des fonctions complémentaires.
+
diff --git a/doc/dictionary/convention.md b/doc/dictionary/convention.md
index 617b7bf3e..c87cff1b3 100644
--- a/doc/dictionary/convention.md
+++ b/doc/dictionary/convention.md
@@ -1,21 +1,20 @@
-# Convention de rédaction d'un dictionnaire
+---
+gitea: none
+include_toc: true
+---
-## Ordonnancement du dictionnaire
+# Conventions
-L'ordre des informations mise dans le dictionnaire est idéalement :
-
-- services
-- variables
-- constraintes
-
-## Nom des fichiers de dictionnaire
+## Convention de nom d'un fichier de dictionnaire
L'ordre des dictionnaires est important pour l'ordre de création des variables et des familles.
Les fichiers devront donc démarrés par deux numéros suivit d'un tiret.
-Par exemple : 00-base.xml
+Par exemple : `00-base.xml`
-## Le nombre d'espace XML
+## Convention du nom des familles et variables
-Le nombre d'espace dans un dictionnaire au format XML est de deux espaces.
+La seule restriction sur le nom des familles et variables est que le nom ne doit pas commencer par le caractèr "\_".
+Néanmoins il est préférable de n'utiliser que des lettres minuscule ASCII, des chiffres et le caractère "\_".
+C'est la convention typographique snake case qui est donc utilisée.
diff --git a/doc/dictionary/extra.md b/doc/dictionary/extra.md
index 4fea90c97..2a584bc87 100644
--- a/doc/dictionary/extra.md
+++ b/doc/dictionary/extra.md
@@ -4,9 +4,4 @@ Un extra est un espace de nom différent. L'idée et de pouvoir classer les vari
Les espaces de nom extra doivent être déclaré au moment [de la configuration de Rougail](../dev/config.md).
-Dans cet espace de nom :
-
-- des variables et des familles peuvent avoir le même nom dans différentes familles
-- la valeur d'un cible, source, leader ou follower des contraintes doivent être avec un chemin complet
-- on ne peut pas déclarer des services dans cet espace de nom
-- dans un template il faut utiliser des chemins complet (%%my_extra.my_family.my_variable ou %%my_extra.my_family.leader.follower pour une variable suiveuse)
+Dans cet espace de nom on ne peut pas accéder a des variables d'un autre espace de nom `extra`. Par contre il est possible d'accéder au variable de l'espace de nom par défaut.
diff --git a/doc/dictionary/rougail.md b/doc/dictionary/rougail.md
index ef26e903f..2a2b79c05 100644
--- a/doc/dictionary/rougail.md
+++ b/doc/dictionary/rougail.md
@@ -2,21 +2,20 @@
## Un dictionnaire ?
-Un dictionnaire est un fichier XML ou YAML donc la structure est décrite dans cette documentation.
+Un dictionnaire est un fichier YAML dont la structure est décrite dans cette documentation.
-Un dictionnaire contient en ensemble de variable chargé dans Tiramisu, utilisable à tout moment, notamment dans des templates.
+Un dictionnaire contient en ensemble de variable chargé dans [Tiramisu](https://forge.cloud.silique.fr/gnunux/tiramisu), utilisable à tout moment, notamment dans des templates.
-Les familles, les variables et les contraintes peuvent être défini dans plusieurs dictionnaires. Ces dictionnaires s'aggrège alors.
+Les familles et les variables peuvent être défini dans plusieurs dictionnaires. Ces dictionnaires s'aggrègent alors.
-Il est également possible de redéfinir des éléments pour changer les comportement d'une variable ou d'un service.
+Les dictionnaires sont chargés dans l'ordre des répertoires [définit avec le paramètre `dictionaries_dir` de la configuration](../dev/config.md). Chaque répertoire est chargé les uns après les autres. A l'intérieur de ces répertoires les fichiers YAML seront classés par ordre alphabétique.
+
+Il n'y a pas de classement par ordre alphabétique de l'ensemble des fichiers YAML de tous les répertoires.
+
+Il est également possible de redéfinir des éléments pour changer les comportement d'une famille ou d'une variable.
## L'espace de nom par défaut
-L'espace de nom par défaut s'appelle "rougail" ([ce nom est personnalisable](../dev/config.md)).
+Les familles et variables de ces dictionnaires sont classées, par défaut, dans l'espace de nom `rougail`. Il est possible de changer le nom de cet espace de nom [avec le paramètre `variable_namespace` de la configuration](../dev/config.md).
-Cet espace de nom est un peu particulier :
-
-- le nom des variables et des familles doivent être unique pour l'ensemble de cet espace (même si ces variables ou familles sont dans des familles différentes)
-- la valeur d'un cible, source, leader ou follower des contraintes peuvent être avec nom de la variable ou de la famille ou leurs chemins complet
-- on peut déclarer des services dans cet espace de nom
-- dans un template on peut utiliser cette variable sans le chemin complet (%%my_variable) ou avec (%%rougail.my_family.my_variable)
+Cet espace de nom est un peu particulier, il peut accéder a des variables dans un autre espace de nom.
diff --git a/doc/family/auto.md b/doc/family/auto.md
index 6d2b3f7dc..dd16e57aa 100644
--- a/doc/family/auto.md
+++ b/doc/family/auto.md
@@ -1,46 +1,37 @@
# Famille crée dynamiquement
Pour créer une famille dynamiquement, il faut créer une famille fictive lié à une variable.
-Le nom et la description de la famille et des variables qu'elle contient sera en réalité le prefix du nouveau nom/description. Le suffix viendra de la variable liée.
+Le nom et la description de la famille et des variables qu'elle contient sera en réalité le prefix du nouveau nom/description. Le suffix viendra de la valeur de la variable liée.
Par exemple :
-```xml
-
- val1
- val2
-
-
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: variable
- multi: true
- value:
- - text: 'val1'
- - text: 'val2'
-- family:
- name: my_dyn_family_
- dynamic: varname
- description: 'Describe '
- variables:
- - variable:
- name: my_dyn_var_
+---
+version: '1.0'
+varname:
+ multi: true
+ default:
+ - val1
+ - val2
+my_dyn_family_:
+ type: dynamic
+ variable: rougail.varname
+ description: 'Describe '
+ my_dyn_var_:
+ type: string
```
Créera deux familles :
-- la famille dynamique : "my_dyn_family_val1" avec la description "Describe val1"
-- la famille dynamique : "my_dyn_family_val2" avec la description "Describe val2"
+- la famille dynamique : "rougail.my_dyn_family_val1" avec la description "Describe val1"
+- la famille dynamique : "rougail.my_dyn_family_val2" avec la description "Describe val2"
-Dans la famille dynamique "my_dyn_family_val1" on retrouvera une variable "my_dyn_var_val1".
+Dans la famille dynamique "rougail.my_dyn_family_val1" on retrouvera une variable "my_dyn_var_val1".
-Bien évidement si le contenu de "varname" venait a évolué, de nouvelles familles dynamiques pouvent apparaitre ou des familles dynamiques peuvent disparaître.
+Bien évidement si le contenu de "varname" venait a évoluer, de nouvelles familles dynamiques apparaitront ou disparaîtront.
-Attention la variable lié à la famille doit être obligatoirement une variable multiple et il n'est pas possible de mettre une famille dans une famille dynamique.
+A noter que :
+
+- la variable liée à la famille doit être obligatoirement une variable multiple ;
+- il n'est pas possible de mettre une simple famille dans une famille dynamique ;
+- il est possible de mettre [une famille meneuse](leadership.md) dans une famille dynamique.
diff --git a/doc/family/leadership.md b/doc/family/leadership.md
index bf35edb71..95f555b2e 100644
--- a/doc/family/leadership.md
+++ b/doc/family/leadership.md
@@ -1,14 +1,22 @@
# Variable meneuse ou suiveuse
+## Un famille meneuse
+
+Les variables meneuses et suiveuses sont placées dans un famille meneuse.
+
+Une famille meneuse ne peut pas contenir d'autre famille.
+
+Le [mode](../variable/mode.md) par défaut de la famille meneuse est le mode de la variable meneuse.
+
## Variable meneuse
-Une variable meneuse est une variable qui va guider la longueur d'autre variables (appelé variables suiveuse).
+Une variable meneuse est une variable qui va guider la longueur d'autres variables (appelé variables suiveuses).
Une variable meneuse est une [variable](../variable/README.md) qui est obligatoirement de type multiple.
Une variable meneuse peut être obligatoire.
-Le [mode](../mode.md) par défaut correspond au plus petit mode définit par l'utilisateur des variables suiveuses.
+Le [mode](../variable/mode.md) par défaut correspond au plus petit mode définit pour les variables suiveuses.
## Variable suiveuse
@@ -23,63 +31,35 @@ Cette variable peut être de type multiple. Dans ce cas, pour un index determin
Une variable suiveuse peut être obligatoire. Cela signifie que lorsqu'une variable meneuse est renseigné, il faut obligatoirement que la variable suiveuse est également une valeur à l'index considéré.
Si aucune valeur n'est définit pour la variable meneuse, aucune valeur n'est a spécifié pour la variable suiveuse.
-Le [mode](../mode.md) par défaut d'une variable suiveuse correspond au [mode](../mode.md) de la variable meneuse.
+Le [mode](../variable/mode.md) par défaut d'une variable suiveuse correspond au [mode](../variable/mode.md) de la variable meneuse.
Si une variable meneuse est caché ou désactivé, les variables suiveuses le seront également.
## Définition des variables meneuse et suiveuse
-Les variables meneuses et suiveuses doivent dans une famille de type "leadership".
+Une famille meneuse a un attribut type à "leadership". Le type est obligatoire.
Voici un exemple de définition d'une variable meneuse et de deux variables meneuses :
-```xml
-
-
-
-
-
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- family:
- name: family
- leadership: true
- variables:
- - variable:
- name: leader
- multi: true
- - variable:
- name: follower1
- - variable:
- name: follower2
- multi: true
+---
+version: '1.0'
+family:
+ type: leadership
+ leader:
+ multi: true
+ follower1:
+ follower2:
+ multi: true
```
## Ajout d'une nouvelle variable suiveuse
-Pour ajouter, dans un nouveau dictionnaire, une variable suiveuse à notre groupe, rien de plus simple, il suffit définir une ou des nouvelles variables dans la famille :
-
-```xml
-
-
-
-
-
-```
-
-En YAML :
+Pour ajouter une nouvelle variable suiveuse, dans un nouveau dictionnaire, il suffit de définir une ou des nouvelles variables dans la famille meneuse :
```yml
-variables:
-- family:
- name: family
- variables:
- - variable:
- name: follower3
+---
+version: '1.0'
+family:
+ follower3:
```
diff --git a/doc/family/simple.md b/doc/family/simple.md
index 89426357b..5de8edc72 100644
--- a/doc/family/simple.md
+++ b/doc/family/simple.md
@@ -1,128 +1,36 @@
+---
+gitea: none
+include_toc: true
+---
+
# Une famille
-Une famille est un conteneur de variables. Elle peut contenir également des familles.
+## Synopsis
-Pour décrire une famille il faut mettre au minimum un nom :
+Une famille est un conteneur de variables et de sous-famille.
-```xml
-
-```
+⚠️ Une famille sans sous-famille ni sous-variable sera automatiquement supprimée.
-En YAML :
+## Exemple
```yml
-- family:
- name: my_family
+---
+version: '1.0'
+my_family:
+ type: family
+ description: This is a great family
+ help: This is the help of a great family
+ mode: expert
```
-Cette famille doit être placé dans une balise [variables](../variables.md) :
+## Paramètres
-```xml
-
-
-
-```
-
-En YAML :
-
-```yml
-variables:
-- family:
- name: my_family
-```
-
-Ou dans une autre famille :
-
-```xml
-
-
-
-
-
-```
-
-En YAML :
-
-```yml
-variables:
-- family:
- name: my_family
- variables:
- - family:
- name: second_family
-```
-
-Attention, une famille vide sera automatiquement supprimée.
-
-## Description et aide de la famille
-
-En plus d'un nom, il est possible de mettre une "description" à la famille. C'est une information "utilisateur" qui nous permettra d'avoir des informations complémentaires sur le contenu de cette famille :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-variables:
-- family:
- name: my_family
- description: 'This is a great family'
-```
-
-En plus de la description, il est possible de préciser une aide complémentaire :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-variables:
-- family:
- name: my_family
- help: 'This is a great family'
-```
-
-## Mode de la famille
-
-Le [mode](../mode.md) par défaut d'une famille correspond au [mode](../mode.md) du mode le plus petit entre la famille parente, les variables enfants ou des familles enfants qui sont contenu dans cette famille.
-
-Changer le [mode](../mode.md) d'une famille permet de définir le [mode](../mode.md) par défaut des variables ou des familles inclusent dans cette famille.
-
-Pour définir le [mode](../mode.md) :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- family:
- name: my_family
- mode: expert
-```
-
-## Famille invisible
-
-Il est possible de cacher une famille, ainsi que toutes les variables et des familles inclusent dans cette famille.
-
-Cacher une famille signifie qu'elle ne sera pas visible lorsqu'on modifie la configuration du service.
-Par contre ces variables sont accessibles lorsqu'on va utiliser ces variables.
-
-Pour cacher une famille :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- family:
- name: my_family
- hidden: true
-```
+| Paramètre | Commentaires |
+|-----------|--------------|
+| **name**
`string`
`mandatory` | Nom de la famille.
C'est avec ce nom qu'on va pouvoir interagir avec la famille.
Il est préférable de suivre la [convention sur les noms de variable](convention.md). |
+| **type**, **\_type**
`string` | Type de la famille.
Le type n'est pas obligatoire même si parfois c'est nécessaire de le faire pour aider le moteur.
**Valeurs possible :**
- `family` ← par defaut
- `leadership`
- `dynamic`
📝 Si une sous-famille ou une sous-variable a déjà le nom "type" il est possible d'utiliser l'attribut "\_type". |
+| **description**, **\_description**
`string` | La description de la famille.
Information utilisateur permettant de comprendre l'utilité de la famille.
📝 Si une sous-famille ou une sous-variable a déjà le nom "description" il est possible d'utiliser l'attribut "\_description". |
+| **help**, **\_help**
`string` | Aide complémentaire associée à la famille.
📝 Si une sous-famille ou une sous-variable a déjà le nom "help" il est possible d'utiliser l'attribut "\_help". |
+| **mode**, **\_mode**
`string` | [Mode](../variable/mode.md) de la famille
Le mode par défaut d'une famille est le mode le plus petit des familles parentes, les variables enfants ou des familles enfants qui sont contenus dans cette famille.
Ce mode permet aussi de définir le mode par défaut des variables ou des familes inclusent dans cette famille.
**Values:**
- basic
- normal ← default
- expert
📝 Si une sous-famille ou une sous-variable a déjà le nom "mode" il est possible l'attribut "\_mode". |
+| **hidden**, **\_hidden**
`boolean` ou [`calculation`](../condition/README.md) | Famille invisible.
Permet de cacher une famille ainsi que les variables ou les familles inclusent dans cette famille.
Cela signifie que la famille ne sera plus visible pour l'utilisateur mais sera visible pour un calcul.
📝 Si une sous-famille ou une sous-variable a déjà le nom "hidden" il est possible l'attribut "\_hidden". |
+| **disabled**, **\_disabled**
`boolean` ou [`calculation`](../condition/README.md) | Famille désactivée.
Permet de désactiver une famille ainsi que les variables ou les familles inclusent dans cette famille.
Cela signifie que la famille ne sera plus visible pour l'utilisateur mais également pour un calcul.
📝 Si une sous-famille ou une sous-variable a déjà le nom "disabled" il est possible l'attribut "\_disabled". |
diff --git a/doc/fill/README.md b/doc/fill/README.md
index 797d7ef8d..a31822a11 100644
--- a/doc/fill/README.md
+++ b/doc/fill/README.md
@@ -1,7 +1,6 @@
# Les variables calculées
-Une variable calculée est une variable donc sa valeur est le résultat d'une fonction python.
+Une variable calculée est une variable donc sa valeur est le résultat d'une fonction Python.
- [Valeur calculée de la variable](value.md)
- [Réfinition](redefine.md)
- - [Exemples de calcule](examples.md)
diff --git a/doc/fill/examples.md b/doc/fill/examples.md
index 58ad6bc4b..2f2e7b444 100644
--- a/doc/fill/examples.md
+++ b/doc/fill/examples.md
@@ -4,19 +4,6 @@
Créeons deux variables multiples, une pour accueillir la liste des éléments du nom variable (ici `zones_list`), la seconde étant le nom du fichier calculé (ici `netwokd_configurations`) :
-```xml
-
-
- zone1
- zone2
- zone3
-
-
-
-```
-
-En YAML :
-
```yml
variables:
- variable:
@@ -36,21 +23,6 @@ variables:
Calculons la valeur de la seconde variable à partir de la première :
-```xml
-
-
- /systemd/network/10-
- zones_list
- -risotto.network
-
- True
- netwokd_configurations
-
-
-```
-
-En YAML :
-
```yml
constraints:
- fill:
@@ -67,32 +39,3 @@ constraints:
target:
- text: netwokd_configurations
```
-
-Le contenu de la variable `netwokd_configurations` sera alors :
-
-- /systemd/netword/10-zone1/risotto.network
-- /systemd/netword/10-zone2/risotto.network
-- /systemd/netword/10-zone3/risotto.network
-
-Enfin déclarer une balise file en utilisant ces deux variables :
-
-```xml
-
-
- netwokd_configurations
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: systemd-networkd
- file:
- - file_type: variable
- source: network
- variable: zones_list
- text: netwokd_configurations
-```
diff --git a/doc/fill/redefine.md b/doc/fill/redefine.md
index d85b21b45..0d7fdc3e6 100644
--- a/doc/fill/redefine.md
+++ b/doc/fill/redefine.md
@@ -4,55 +4,25 @@
Dans un premier dictionnaire déclarons notre variable et notre calcule :
-```xml
-
-
-
-
-
- my_calculated_variable
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: my_calculated_variable
-constraints:
-- fill:
- - name: return_no
- target:
- - text: my_calculated_variable
+---
+version: '1.0'
+my_calculated_variable:
+ default:
+ type: jinja
+ jinja: '{{ return_no() }}'
```
Dans un second dictionnaire il est possible de redéfinir le calcul :
-```xml
-
-
-
-
-
- my_calculated_variable
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: my_calculated_variable
- redefine: true
-constraints:
-- fill:
- - name: return_yes
- target:
- - text: my_calculated_variable
+---
+version: '1.0'
+my_calculated_variable:
+ redefine: true
+ default:
+ type: jinja
+ jinja: '{{ return_yes() }}'
```
Dans ce cas, à aucun moment la fonction "return_no" ne sera exécuté. Seul la fonction "return_yes" le sera.
@@ -65,44 +35,21 @@ Dans un second dictionnaire il est possible de supprimer ce calcul.
Dans un premier dictionnaire déclarons notre variable et notre calcule :
-```xml
-
-
-
-
-
- my_calculated_variable"
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: my_calculated_variable
-constraints:
-- fill:
- - name: return_no
- target:
- - text: my_calculated_variable
+---
+version: '1.0'
+my_calculated_variable:
+ default:
+ type: jinja
+ jinja: '{{ return_no() }}'
```
Dans un second dictionnaire supprimer ce calcul :
-```xml
-
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: my_calculated_variable
- redefine: true
- remove_fill: true
+---
+version: '1.0'
+my_calculated_variable:
+ redefine: true
+ default: null
```
diff --git a/doc/fill/value.md b/doc/fill/value.md
index d32e30379..a62741622 100644
--- a/doc/fill/value.md
+++ b/doc/fill/value.md
@@ -4,28 +4,13 @@
Créons une variable dont la valeur est retournée par la fonction "return_no" :
-```xml
-
-
-
-
-
- my_calculated_variable
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: my_calculated_variable
-constraints:
-- fill:
- - name: return_no
- target:
- - text: my_calculated_variable
+---
+version: '1.0'
+my_calculated_variable:
+ default:
+ type: jinja
+ jinja: '{{ return_no() }}'
```
Puis créons la fonction "return_no" :
@@ -35,50 +20,21 @@ def return_no():
return 'no'
```
-La [cible (de type variable)](../target/variable.md) du calcul est ici "my_calculated_variable".
-
-Dans ce cas, la valeur par défaut est la valeur retournée par la fonction (ici "no"), elle sera calculée tant que l'utilisateur n'a pas de spécifié de valeur à cette variable.
-
-Attention, si une valeur par défaut est définit dans la variable "my_calculated_variable" :
-
-```xml
-
- yes
-
-```
-
-En YAML :
-
-```yml
-variables:
-- variable:
- name: my_calculated_variable
- value:
- - text: yes
-```
-
-Cette valeur par défaut sera complètement ignorée. C'est le calcul qui en définira la valeur.
-
-Il est possible de définir des [paramètres](../param/README.md) à cette fonction.
-
## Variable avec une valeur calculée
En ajoutant le paramètre "hidden" à "True" dans la variable précédente, l'utilisateur n'aura plus la possibilité de modifié la valeur. La valeur de la variable sera donc systématiquement calculée :
-```xml
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: my_calculated_variable
- hidden: true
+---
+version: '1.0'
+my_calculated_variable:
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ return_no() }}'
```
-Si une condition "hidden_if_in" est spécifié à la variable, la valeur sera modifiable par l'utilisateur si elle n'est pas cachée mais elle sera systèmatiquement calculée (même si elle a déjà était modifiée) si la variable est cachée.
+C'est également vrai également si hidden est un calcul et que le résultat du calcul est `true`.
## Variable meneuse ou suiveuse avec valeur calculé
@@ -90,105 +46,66 @@ Si la variable n'est pas multiple, il ne faut pas que le calcule retourne une li
Il est également possible de calculer [une variable d'une famille dynamique](../family/auto.md) à partir d'une variable standard :
-```xml
-
-
- val1
- val2
-
-
- val
-
-
-
- val
-
-
-
-
-
- my_variable
- my_calculated_variable_dyn_
-
-
-```
-
-En YAML :
-
```yml
-variables:
-- variable:
- name: suffixes
+---
+version: '1.0'
+suffixes:
+ type: string
+ description: Suffixes of dynamic family
+ multi: true
+ default:
+ - val1
+ - val2
+my_variable:
+ type: string
+ description: My variable
+ default: val
+dyn_:
+ type: dynamic
+ variable: rougail.suffixes
+ my_calculated_variable_dyn_:
type: string
- description: Suffixes of dynamic family
- multi: true
- value:
- - text: val1
- - text: val2
-- variable:
- name: my_variable
- type: string
- description: My variable
- value:
- - text: val
-- family:
- name: dyn
- dynamic: suffixes
- variables:
- - variable:
- name: my_calculated_variable_dyn_
- type: string
- description: My calculated variable
- value:
- - text: val
-constraints:
-- fill:
- - name: return_value
- param:
- - type: variable
- text: my_variable
- target:
- - text: my_calculated_variable_dyn_
+ description: My calculated variable
+ default:
+ type: variable
+ variable: rougail.my_variable
```
-Dans ce cas, les variables dynamiques "my_calculated_variable_dyn_" seront calculés à partir de la valeur de la variable "my_variable".
-Que cela soit pour la variable "my_calculated_variable_dyn_val1" et "my_calculated_variable_dyn_val2".
+Dans ce cas, les variables dynamiques "rougail.dyn_.my_calculated_variable_dyn_" seront calculés à partir de la valeur de la variable "my_variable".
+Que cela soit pour la variable "rougail.dynval1.my_calculated_variable_dyn_val1" ou "rougail.dynval2.my_calculated_variable_dyn_val2".
Par contre, il n'est pas possible de faire un calcul pour une seule des deux variables issues de la variable dynamique.
Si c'est ce que vous cherchez à faire, il faudra prévoir un traitement particulier dans votre fonction.
-Dans ce cas, il faut explicitement demander la valeur du suffix dans la fonction :
+Dans ce cas, il faut explicitement demander le suffix et faire un traitement :
-```xml
-
-
- my_variable
-
- my_calculated_variable_dyn_
-
-
-```
-
-En YAML :
```yml
-constraints:
-- fill:
- - name: return_value_suffix
- param:
- - type: variable
- text: my_variable
- - type:suffix
- target:
- - text: my_calculated_variable_dyn_
-```
-
-Et ainsi faire un traitement spécifique pour ce suffix :
-
-```python
-def return_value_suffix(value, suffix):
- if suffix == 'val1':
- return value
+---
+version: '1.0'
+suffixes:
+ type: string
+ description: Suffixes of dynamic family
+ multi: true
+ default:
+ - val1
+ - val2
+my_variable:
+ type: string
+ description: My variable
+ default: val
+dyn_:
+ type: dynamic
+ variable: rougail.suffixes
+ my_calculated_variable_dyn_:
+ type: string
+ description: My calculated variable
+ default:
+ type: jinja
+ jinja: "{% if suffix == 'val1' %}value{% endif %}"
+ params:
+ suffix:
+ type: suffix
```
## Variable avec valeur calculée obligatoire
diff --git a/doc/param/README.md b/doc/param/README.md
index fc5779065..68489774c 100644
--- a/doc/param/README.md
+++ b/doc/param/README.md
@@ -1,6 +1,5 @@
# Paramètre de la fonction
- - [Paramètre positionnel ou nommée](positional.md)
- [Type de paramètre simple](simple.md)
- [Type de paramètre "variable"](variable.md)
- [Type de paramètre "information"](information.md)
diff --git a/doc/param/positional.md b/doc/param/positional.md
deleted file mode 100644
index b3911dc3d..000000000
--- a/doc/param/positional.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Paramètre positionnel
-
-Déclarons un paramètre positionnel :
-
-```xml
-no
-```
-
-En YAML :
-
-```yml
-param:
-- text: no
-```
-
-Créons la fonction correspondante :
-
-```python
-def return_value(value):
- return value
-```
-
-La variable "value" de la fonction "return_value" aura donc "no" comme valeur puisque le paramètre aura la valeur fixe "no".
-
-# Paramètre nommée
-
-Déclarons maintenant un paramètre nommée :
-
-```xml
-no
-```
-
-En YAML :
-
-```yml
-param:
-- name: valeur
- text: no
-```
-
-Dans ce cas la fonction return_value sera exécuté avec le paramètre nommé "valeur" dont sa valeur sera "no".
diff --git a/doc/param/simple.md b/doc/param/simple.md
index 44d118736..1e7ce4aee 100644
--- a/doc/param/simple.md
+++ b/doc/param/simple.md
@@ -1,90 +1,16 @@
-# Paramètre de type "texte"
+# Paramètre de type simple
-Déclarons un paramètre avec une string :
-
-```xml
-no
-```
-
-En YAML :
+Déclarons une variable donc la valeur est calculé via un paramètre contenu une valeur :
```yml
-param:
-- type: string
- text: no
+---
+version: '1.0'
+my_variable:
+ default:
+ type: jinja
+ jinja: '{{ value }}'
+ params:
+ value: 'no'
```
-C'est le type par défaut pour un paramètre.
-
-# Paramètre de type "nombre"
-
-Déclarons un paramètre avec un nombre :
-
-```xml
-1
-```
-
-En YAML :
-
-```yml
-param:
-- type: number
- text: 1
-```
-
-Créons la fonction correspondante :
-
-```python
-def return_value_with_number(value):
- if value == 1:
- return 'no'
- return 'yes'
-```
-
-La variable aura donc "no" comme valeur puisque le paramètre aura la valeur fixe "1".
-
-# Paramètre de type "booléen"
-
-Déclarons un paramètre avec un booléen :
-
-```xml
-True
-```
-
-En YAML :
-
-```yml
-param:
-- type: boolean
- text: true
-```
-
-# Paramètre de type "nil"
-
-Le paramètre peut être une valeur null (None en python) :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-param:
-- type: nil
-```
-
-# Paramètre de type "space"
-
-Les paramètres sont chargés en supprimer les espaces en début ou fin de chaîne. Ce qui rend impossible d'avoir un paramètre " ". Avec le type "space", le paramètre sera donc un simple espace :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-param:
-- type: space
-```
+La valeur de la variable conserve sont type.
diff --git a/doc/param/variable.md b/doc/param/variable.md
index bda316189..a359b57ad 100644
--- a/doc/param/variable.md
+++ b/doc/param/variable.md
@@ -1,43 +1,26 @@
# Paramètre de type "variable"
-Imaginons que la variable "my_variable" pré-existe. La valeur de la variable sera utilisé comme paramètre :
-
-```xml
-my_variable
-```
-
-En YAML :
+Il est possible de spécifier le nom d'une variable qui peut ne pas exister :
```yml
-param:
-- type: variable
- text: my_variable
+---
+version: '1.0'
+my_variable:
+ default:
+ type: jinja
+ jinja: |+
+ {% if value %}
+ value
+ {% endif %}
+ params:
+ value:
+ type: variable
+ variable: rougail.unknown_variable
+ optional: true
```
-[Les variables meneuses ou suiveuses](../family/leadership.md) peuvent être utilisé sans soucis comme paramètre.
-
-## Paramètre avec variable potentiellement non existante
-
-Suivant le contexte une variable peut exister ou ne pas exister.
-
-Un paramètre de type "variable" peut être "optional" :
-
-```xml
-unknow_variable
-```
-
-En YAML :
-
-```yml
-param:
-- type: variable
- optional: true
- text: unknow_variable
-```
-
-Si la variable "unknow_variable" n'existe pas, le paramètre ne sera pas passé à la fonction.
-
-Si maintenant on créé un nouveau dictionnaire en créant cette variable, la fonction sera exécuté avec le paramètre.
+La variable "rougail.unknown_variable" n'existant, `value` sera égal à `None` et la valeur de la variable "rougail.my_variable" sera aussi égale à `None`.
+Si "rougail.unknown_variable" est créé dans un autre dictionnaire, sa valeur sera ainsi copié.
## Paramètre avec variable potentiellement désactivée
@@ -45,17 +28,23 @@ Si une variable est désactivé, l'utilisation de cette variable peut poser prob
Il est possible de ne pas générer d'erreur si une variable est désactivé en utilisant le paramètre "propertyerror" :
-```xml
-variable1
-```
-
-En YAML :
-
```yml
-param:
-- type: variable
- propertyerror: false
- text: variable1
+---
+version: '1.0'
+disabled_variable:
+ disabled: true
+my_variable:
+ default:
+ type: jinja
+ jinja: |+
+ {% if value is defined and value %}
+ value
+ {% endif %}
+ params:
+ value:
+ type: variable
+ variable: rougail.disabled_variable
+ propertyerror: false
```
Dans ce cas, si la variable est désactivé, le paramètre n'est jamais donnée à la fonction de destination.
@@ -66,18 +55,110 @@ Il est possible de faire un calcul avec comme paramètre [une variable d'une fam
Par exemple :
-```xml
-vardynval1
+```yml
+---
+version: '1.0'
+varname:
+ multi: true
+ default:
+ - val1
+ - val2
+my_dyn_family_:
+ type: dynamic
+ variable: rougail.varname
+ description: 'Describe '
+ my_dyn_var_:
+ type: string
+ default: "val"
+my_variable:
+ multi: true
+ unique: false
+ default:
+ type: jinja
+ jinja: |+
+ {% for val in value %}
+ {{ val }}
+ {% endfor %}
+ params:
+ value:
+ type: variable
+ variable: rougail.my_dyn_family_.my_dyn_var_
```
-En YAML :
-
```yml
-param:
-- type: variable
- text: vardynval1
+---
+version: '1.0'
+varname:
+ multi: true
+ default:
+ - val1
+ - val2
+my_dyn_family_:
+ type: dynamic
+ variable: rougail.varname
+ description: 'Describe '
+ my_dyn_var_:
+ type: string
+ default: "val"
+my_variable:
+ default:
+ type: jinja
+ jinja: |+
+ {% if value is defined and value %}
+ {{ value }}
+ {% endif %}
+ params:
+ value:
+ type: variable
+ variable: rougail.my_dyn_family_val1.my_dyn_var_val1
```
+```yml
+---
+version: '1.0'
+varname:
+ multi: true
+ default:
+ - val1
+ - val2
+my_dyn_family_:
+ type: dynamic
+ variable: rougail.varname
+ description: 'Describe '
+ my_dyn_var_:
+ type: string
+ default:
+ type: jinja
+ jinja: '{{ value }}'
+ params:
+ value:
+ type: suffix
+```
+
+PAS LE BON FICHIER :
+
+```yml
+---
+version: '1.0'
+varname:
+ multi: true
+ default:
+ - val1
+ - val2
+my_dyn_family_:
+ type: dynamic
+ variable: rougail.varname
+ description: 'Describe '
+ my_dyn_var_:
+ type: string
+ default:
+ type: suffix
+```
+
+
+
+
+
Dans ce cas, la valeur du paramètre de la fonction sera la valeur de la variable "vardyn" pour la famille ayant le suffix "val1".
Il peut être utile de récupérer la valeur du suffix dans la fonction, pour cela il suffit de mettre un paramètre de type suffix :
diff --git a/doc/service/README.md b/doc/service/README.md
deleted file mode 100644
index c796b46e2..000000000
--- a/doc/service/README.md
+++ /dev/null
@@ -1,186 +0,0 @@
-# La gestion d'un service
-
-## La base service
-
-Un service est inclut dans un conteneur [services](../services.md).
-
-Cette balise permet de définir tous les éléments ([fichier](file.md), [certificat](certificate.md), [IP](ip.md) et [réécriture](override.md)) liés à un service ou à démon.
-
-Il faut, à la création du service, préciser son nom :
-
-```xml
-
-
-
-
-
-
-```
-
-En YAML :
-
-```yml
-version: '0.10'
-services:
-- service:
- - name: squid
-```
-
-## Les types de service
-
-Les services peuvent être de plusieurs type :
-
-- service (valeur par défaut) : cela signifie que c'est un service systemd qui est activer au démarrage de la machine
-- mount : fichier utilisé par systemd-mount
-- swap : fichier utilisé par systemd-swap
-- timer : tâche planifié pour systemd
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- service:
- - name: dev-disk-by\x2dpartlabel-swap
- type: swap
-```
-
-## Les targets de service
-
-Active le service systemd pour une target systemd déterminé. Par défaut, l'activation du service n'est pas gérer par rougail.
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- service:
- - name: squid
- target: multi-user
-```
-
-## La génération du fichier service
-
-Le fichier de description du service peut être fourni directement par la distribution GNU/Linux utilisé, mais il peut également être fournit par l'administrateur.
-Dans ce cas, il est possible de créé un template, dont le nom est obligatoirement la valeur de la balise "name" + "." + la valeur de la base "type".
-
-Deux types de template sont aujourd'hui disponible :
-
-- cheetah
-- jinja
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- service:
- - name: dev-disk-by\x2dpartlabel-swap
- type: swap
- engine: cheetah
-```
-
-Dans ce cas, rougail utilisera le template "dev-disk-by\x2dpartlabel-swap.swap" pour générer le fichier systemd de gestion de ce service.
-
-## Le service factice
-
-Un service peut être factice, donc non géré par le système de service du système :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- service:
- - name: ldap_client
- manage: false
-```
-
-Un service factice est généralement une service qui n'existe pas réellement (par exemple si on configure un client). Il n'est là que pour contenir des fichiers.
-
-## Désactiver le service
-
-Il est possible de désactiver un service. Pour cela il faut rajouter l'attribut "disabled" à True :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- service:
- - name: test
- disabled: true
-```
-
-Dans ce cas, le service et les éléments qu'il compose ([fichier](file.md), [certificat](certificate.md), [IP](ip.md) et [réécriture](override.md) seront désactivés.
-
-Il est possible de définir une [condition](../condition/README.md) de type "disabled_if_in" ou "disabled_if_not_in" sur une balise service :
-
-```xml
-
-
-
-
-
-
-
-
-
- False
- test
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: test
- servicelist: test
-variables:
-- variable:
- - name: condition
- type: boolean
-constraints:
-- condition:
- - name: disabled_if_in
- source: condition
- param:
- - text: false
- target:
- - type: servicelist
- text: test
-```
-
-Dans ce cas, tous les services et les éléments qu'il compose avec un attribut servicelist à "test" seront désactivés si la variable "condition" est False.
-
-## Ne pas désactiver le service dans systemd
-
-La désactivation du service va créé un lien symbolique vers /dev/null.
-
-Si vous ne voulez juste pas créer le fichier de service et ne pas faire de lien symbolique, il faut utiliser l'attribut undisable :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- service:
- - name: test
- disabled: true
- undisable: true
-```
diff --git a/doc/service/certificate.md b/doc/service/certificate.md
deleted file mode 100644
index 6febbb399..000000000
--- a/doc/service/certificate.md
+++ /dev/null
@@ -1,163 +0,0 @@
-# La gestion d'un certificat
-
-## La balise certificate
-
-La gestion des certificats se fait dans un conteneur de [service](README.md).
-
-La déclaration du certificat permet d'associer un certificat à un service. Attention, Rougail ne permet que de déclarer ces certificats. Il n'y a pas de gestion du certification dans la bibliothèque.
-
-Pour déclarer un certificat :
-
-```xml
-
-
- /etc/pki/tls/certs/squid.crt
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: squid
- certificate:
- - private: /etc/pki/tls/private/squid.key
- authority: /etc/pki/ca-trust/source/anchors/ca_squid.crt
- text: /etc/pki/tls/certs/squid.crt
-```
-
-Les trois informations a donner sont donc :
-
-- le nom du certificat
-- le nom de la clef privée
-- le nom de certificat de l'autorité de certification
-
-## Les noms de fichiers dynamique
-
-Il est possible également de définir le nom des fichiers dans des variables :
-
-```xml
-
-
- certificate
-
-
-
-
- /etc/pki/tls/certs/squid.crt
-
-
- /etc/pki/tls/private/squid.key
-
-
- /etc/pki/ca-trust/source/anchors/ca_squid.crt
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: squid
- certificate:
- - private: private
- private_type: variable
- authority: authority
- authority_type: variable
- certificate_type: variable
- text: certificate
-variables:
-- variable:
- - name: certificate
- type: filename
- value:
- - text: /etc/pki/tls/certs/squid.crt
- - name: private
- type: filename
- value:
- - text: /etc/pki/tls/private/squid.key
- - name: authority
- type: filename
- value:
- - text: /etc/pki/ca-trust/source/anchors/ca_squid.crt
-```
-
-Attention, les variables doivent être de type "filename".
-
-## Le propriétaire de la clef privée
-
-Le certificat et le certificat de l'autorité de certification n'ont pas besoin d'être privés.
-Par contre, seul le service qui doit avoir accès à la clef privée.
-
-Par défaut seul utilisateur "root" et groupe "root" peuvent y accéder.
-
-Il est possible de définir l'utilisateur ou le groupe de la clef privée générée :
-
-```xml
-
-
- /etc/pki/tls/certs/squid.crt
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: squid
- certificate:
- - private: /etc/pki/tls/private/squid.key
- authority: /etc/pki/ca-trust/source/anchors/ca_squid.crt
- owner: squid
- group: squid
- text: /etc/pki/tls/certs/squid.crt
-```
-
-L'utilisateur et le groupe peuvent être défini dans une variable :
-
-```xml
-
-
- /etc/pki/tls/certs/squid.crt
-
-
-
- squid
-
-
- squid
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: squid
- certificate:
- - private: /etc/pki/tls/private/squid.key
- authority: /etc/pki/ca-trust/source/anchors/ca_squid.crt
- owner: owner
- owner_type: variable
- group: group
- group_type: variable
- text: /etc/pki/tls/certs/squid.crt
-variables:
-- variable:
- - name: owner
- type: unix_user
- value:
- - text: squid
- - name: group
- type: unix_user
- value:
- - text: squid
-```
diff --git a/doc/service/file.md b/doc/service/file.md
deleted file mode 100644
index 5362357fe..000000000
--- a/doc/service/file.md
+++ /dev/null
@@ -1,454 +0,0 @@
-# La gestion d'un fichier
-
-## La balise file
-
-La gestion des fichiers se fait dans un conteneur de [service](README.md).
-
-La déclaration du fichier permet de générer un fichier à partir d'un template pour le déposer à l'endroit prévu dans la déclaration de cette élément.
-
-Il est nécessaire, au minimum, de spécifier le chemin complet du fichier :
-
-```xml
-
-
- /etc/squid/squid.conf
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: squid
- file:
- - text: /etc/squid/squid.conf
-```
-
-## Le nom de template
-
-Par défaut, le nom du template est déduit du nom du fichier.
-
-Par xemple, si le fichier de destination est "/etc/squid/squid.conf", le template aura le nom "squid.conf".
-
-Si le template a un nom différent (par exemple si plusieurs template se retrouve avec le même nom), il est possible de changer le nom du template avec l'attribut source :
-
-```xml
-/etc/squid/squid.conf
-```
-
-En YAML :
-
-```yml
-file:
-- source: template-squid.conf
- text: /etc/squid/squid.conf
-```
-
-## Le nom de template dynamique
-
-La source peut ếgalement être une variable :
-
-```xml
-
-
- /etc/squid/squid.conf
-
-
-
-
- template-squid.conf
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: squid
- file:
- - source: source_var
- source_type: variable
- text: /etc/squid/squid.conf
-variables:
-- variable:
- - name: source_var
- value:
- - text: template-squid.conf
-```
-
-## Les noms de fichiers dynamique
-
-Il est possible également de définir le nom du fichier dans une variable :
-
-```xml
-
-
- my_variable
-
-
-
-
- /etc/squid/squid.conf
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: squid
- file:
- - file_type: variable
- source: squid.conf
- text: my_variable
-variables:
-- variable:
- name: my_variable
- value:
- - text: /etc/squid/squid.conf
-```
-
-Attention, la variable doit être de type "filename".
-
-Dans le cas des fichiers dynamique, la source est obligatoire.
-
-Il est même possible de définir une variable de type multiple, ce qui génèrera plusiers fichiers :
-
-```xml
-
-
- my_variable
-
-
-
-
- /etc/squid1/squid.conf
- /etc/squid2/squid.conf
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: squid
- file:
- - file_type: variable
- source: squid.conf
- text: my_variable
-variables:
-- variable:
- name: my_variable
- multi: true
- value:
- - text: /etc/squid1/squid.conf
- - text: /etc/squid2/squid.conf
-```
-
-Dans ce cas là, le fichier source est identique mais les fichiers de destination seront différent.
-
-Il peut être important de personnaliser le contenu du fichier suivant le fichier de destination.
-Dans ce cas il y a deux possibilités :
-
-- la variable "rougail_filename" contient le nom de fichier de destination
-- l'utilisateur de l'attribut "variable"
-
-En effet, il est possible de passer le contenu d'une variable au template :
-
-```xml
-
-
- my_variable1
-
-
-
-
- /etc/squid1/squid.conf
- /etc/squid2/squid.conf
-
-
- squid1
- squid2
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: squid
- file:
- - file_type: variable
- source: squid.conf
- variable: my_variable2
- text: my_variable1
-variables:
-- variable:
- name: my_variable1
- multi: true
- value:
- - text: /etc/squid1/squid.conf
- - text: /etc/squid2/squid.conf
-- variable:
- name: my_variable2
- multi: true
- value:
- - text: squid1
- - text: squid2
-```
-
-Dans ce cas, lors de la génération du fichier /etc/squid1/squid.conf on retrouvera la variable "rougail_variable" avec la valeur "squid1" et la variable "rougail_index" avec la valeur "0". Lors de la génération du fichier /etc/squid2/squid.conf on retrouvera la variable "rougail_variable" avec la valeur "squid2" et la variable "rougail_index" avec la valeur "1".
-
-Attention : les deux variables "my_variable1" et "my_variable2" doivent être multiple et de même longueur.
-
-## Les droits des fichiers
-
-Par défaut les droits du fichier généré sont "0644" avec comme utilisateur "root" et groupe "root".
-
-Il est possible de définir les droits, l'utilisateur ou le groupe d'un fichier généré :
-
-```xml
-/etc/squid/squid.conf
-```
-
-En YAML :
-
-```yml
-file:
-- mode: '0640'
- owner: nobody
- group: squid
- text: /etc/squid/squid.conf
-```
-
-Il est possible de personnaliser les droits par défaut dans la [configuration de rougail](../dev/config.md)
-
-## Désactiver la génération d'un fichier
-
-Il est possible de désactiver la génération d'un fichier avec l'attribut "disabled" :
-
-```xml
-/etc/squid/squid.conf
-```
-
-En YAML :
-
-```yml
-file:
-- disabled: true
- text: /etc/squid/squid.conf
-```
-
-Il est aussi possible de définir une [condition](../condition/README.md) de type "disabled_if_in" ou "disabled_if_not_in" sur une balise fichier :
-
-```xml
-
-
- /etc/squid/squid.conf
-
-
-
-
-
-
-
- False
- squid
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: text
- file:
- - filelist: squid
- text: /etc/squid/squid.conf
-variables:
-- variable:
- name: condition
- type: boolean
-constraints:
-- condition:
- - name: disabled_if_in
- source: condition
- param:
- - text: false
- target:
- - type: filelist
- text: squid
-```
-
-Dans ce cas, tous les fichiers avec un attribut filelist à "squid" seront désactivés si la variable "condition" est False.
-
-## Redéfinir une fichier
-
-Il est possible de redéfinir les éléments d'un fichier dans un dictionnaire différent en utilisant l'attribut redefine :
-
-```xml
-/etc/squid/squid.conf
-```
-
-En YAML :
-
-```yml
-file:
-- source: template-squid.conf
- redefine: true
- text: /etc/squid/squid.conf
-```
-
-## Choix du moteur de templating
-
-Par défaut, le moteur de templating est le moteur de templating compatible avec "cheetah".
-
-Il est possible de désactiver la templatisation du fichier (il sera alors uniquement copié) :
-
-```xml
-/etc/squid/squid.conf
-```
-
-En YAML :
-
-```yml
-file:
-- engine: 'none'
- text: /etc/squid/squid.conf
-```
-
-Ou d'utiliser le moteur "jinja" :
-
-```xml
-/etc/squid/squid.conf
-```
-
-En YAML :
-
-```yml
-file:
-- engine: jinja
- text: /etc/squid/squid.conf
-```
-
-Il est possible de personnaliser le moteur par défaut dans la [configuration de rougail](../dev/config.md)
-
-## Inclusion de template
-
-Un attribut "included" 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
-- "content" : 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.
-
-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.
-
-Il est possible de personnaliser les methodes d'inclusion par défaut dans la [configuration de rougail](../dev/config.md)
-
-Exemples :
-
-- créons un template qui inclut des noms de fichiers :
-
-Le contenu de ce template (squid.conf) est :
-
-```
-%import os
-%set %%confdir = 'etc/squid/squid.d/'
-%if %%os.path.exists(%%confdir)
- %set %%files = %%os.listdir(%%confdir)
- %%files.sort()
- %for %%file in %%files
- %if %%file.endswith('.cfg')
-include '/' + %%confdir + file
- %end if
- %end for
-%end if
-```
-
-Ajoutons un second template (squid.included.conf) qui sera copié dans ce répertoire :
-
-```
-template content
-```
-
-Et déclaront ces deux templates :
-
-```xml
-/etc/squid/squid.conf
-/etc/squid/squid.d/squid.conf
-```
-
-En YAML :
-
-```yml
-file:
-- text: /etc/squid/squid.conf
-- included: name
- engine: 'none'
- text: /etc/squid/squid.d/squid.conf
-```
-
-Le contenu du fichier généré (/etc/squid/squid.conf) sera donc :
-
-```
-include squid.d/squid.conf
-```
-
-- créons un template qui inclut le contenu de fichiers :
-
-Le contenu de ce template (squid.conf) est :
-
-```
-%import os
-%set %%confdir = 'squid.d/'
-%if %%os.path.exists(%%confdir)
- %set %%files = %%os.listdir(%%confdir)
- %%files.sort()
- %for %%file in %%files
- %if %%file.endswith('.cfg')
-%include raw %%confdir + file
- %end if
- %end for
-%end if
-```
-
-Ajoutons un second template (squid.included.conf) qui sera copié dans ce répertoire :
-
-```
-template content
-```
-
-Et déclaront ces deux templates :
-
-```xml
-/etc/squid/squid.conf
-squid.d/squid.conf
-```
-
-En YAML :
-
-```yml
-file:
-- text: /etc/squid/squid.conf
-- included: content
- engine: 'none'
- text: squid.d/squid.conf
-```
-
-Le contenu du fichier généré (/etc/squid/squid.conf) sera donc maintenant :
-
-```
-template content
-```
diff --git a/doc/service/ip.md b/doc/service/ip.md
deleted file mode 100644
index 8209f2dbd..000000000
--- a/doc/service/ip.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# La gestion d'une IP
-
-## La balise IP
-
-La gestion des IP se fait dans un conteneur de [service](README.md).
-
-La déclaration de l'attribut permet d'associer une IP autorisé à accéder au service.
-
-Il est nécessaire, au minimum, de spécifier le nom d'une variable de type "IP" :
-
-```xml
-variable_ip
-```
-
-En YAML :
-
-```yml
-ip:
-- ip_type: variable_ip
- text: variable_ip
-```
-
-## La gestion d'un réseau
-
-L'adresse peut être de type réseau ("network") :
-
-```xml
-variable_ip
-```
-
-En YAML :
-
-```yml
-ip:
-- netmask: variable_netmask
- text: variable_ip
-```
-
-Attention, dans ce cas il faut préciser une variable de type "netmask" dans l'attribut netmask.
-
-## Désactiver la génération d'une IP
-
-Il est possible de définir une [condition](../condition/README.md) de type "disabled_if_in" ou "disabled_if_not_in" sur une balise IP :
-
-```xml
-
-
- variable_ip
-
-
-
-
-
-
-
-
- False
- test_ip
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: test
- ip:
- - iplist: test_ip
- text: variable_ip
-variables:
-- variable:
- name: condition
- type: boolean
-- variable:
- name: variable_ip
- type: ip
-constraints:
-- condition:
- - name: disabled_if_in
- source: condition
- param:
- - text: false
- target:
- - type: iplist
- text: test_ip
-
-```
-
-Dans ce cas, tous les IP avec un attribut iplist à "test_ip" seront désactivé si la variable "condition" est False.
diff --git a/doc/service/override.md b/doc/service/override.md
deleted file mode 100644
index cfe11e2b5..000000000
--- a/doc/service/override.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# Réécriture du service
-
-## La balise override
-
-La gestion des overrides se fait dans un conteneur de [service](README.md).
-
-La balise override permet de redéfinir facilement un service systemd.
-
-Il suffit d'avoir un template dont le nom est par défaut le nom du service avec l'extension "service" et de déclarer la balise :
-
-```xml
-
-
-
-
-
-```
-
-En YAML :
-
-```yml
-services:
-- service:
- - name: squid
- override: null
-```
-
-Dans cette exemple, le template associé doit s'appeler squid.service
-
-Si le fichier service a un nom différent (par exemple si plusieurs template se retrouve avec le même nom), il est possible de changer le nom du template avec l'attribut source :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-override:
-- source: test.service
-```
-
-Dans ce cas le fichier de destination aura le même nom.
-
-## Choix du moteur de templating
-
-Par défaut, le moteur de templating est le moteur de templating compatible avec "cheetah".
-
-Il est possible de désactiver la templatisation du fichier (il sera alors uniquement copié) :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-override:
-- engine: 'none'
-```
-
-Ou d'utiliser le moteur "jinja" :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-override:
-- engine: 'jinja'
-```
-
-Il est possible de personnaliser le moteur par défaut dans la [configuration de rougail](../dev/config.md)
diff --git a/doc/services.md b/doc/services.md
deleted file mode 100644
index e6e11b9a1..000000000
--- a/doc/services.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Le conteneur des services
-
-La balise "services" est le conteneur de l'ensemble des [services](service/README.md).
-
-Il est placé à la racine du dictionnaire :
-
-```xml
-
-
-
-
-```
-
-En YAML :
-
-```yml
-version: '0.10'
-services: none
-```
-
-Attention, cette balise ne peut pas être placé dans un dictionnaire "extra".
diff --git a/doc/template/README.md b/doc/template/README.md
deleted file mode 100644
index db35bc876..000000000
--- a/doc/template/README.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# Les templates
-
-## Le moteur "cheetah"
-
-Le moteur de templating par défaut est le moteur [Cheetah](https://cheetahtemplate.org/).
-
-Par contre, la configuration par défaut de Cheetah a été modifié.
-
-Dans un template de configuration, il est très fréquent que le caractère "#" est le caractère des commentaires.
-C'est pourquoi la configuration par défaut a été modifié.
-
-Les choix sont maintenant les suivants :
-
-- le caractère des directives : "%" ;
-- les variables : "%%" ;
-- le caractère des commentaires : "#".
-
-Voici quelques exemples d'utilisateurs de ce moteur :
-
-### utiliser une variable
-
-```
-%%variable_name
-```
-
-### condition
-
-```
-%if %%variable_name == 'oui'
-text
-%end if
-```
-
-### vérifier si une variable existe
-
-```
-%if %%varExists('variable_name')
-text
-%end if
-```
-
-### boucle
-
-```
-%for %%var in %%variable_name
-%%var
-%end for
-```
-
-### boucle avec variables meneuse et suiveuse
-
-```
-%for %%var in %%variable_leader
-%%var.variable_follower
-%end for
-```
-
-Pour plus d'informations, voir la documentation de Cheetah.
-
-## Le moteur "jinja"
-
-Il est possible d'utiliser le moteur de templating [Jinja](https://jinja.palletsprojects.com/).
-
-Il n'y a pas d'adaptation particulière pour ce moteur.
-
-Voici quelques exemples d'utilisateurs de ce moteur :
-
-### utiliser une variable
-
-```
-{{ variable_name }}
-```
-
-### condition
-
-```
-{% if variable_name == 'oui' %}
-text
-{% endif -%}
-```
-
-### boucle
-
-```
-{% for var in variable_name %}
-{{ var }}
-{% endfor -%}
-```
-
-### boucle avec variables meneuse et suiveuse
-
-```
-{% for var in variable_leader %}
-{{ var.variable_follower }}
-{% endfor -%}
-```
-
-Pour plus d'informations, voir la documentation de Jinja.
-
-## Le moteur "none"
-
-Ce moteur permet de copie le fichier sans y apporter la moindre modification.
-C'est utile pour les templates ne contenant aucune variable ni condition.
diff --git a/doc/template/patch.md b/doc/template/patch.md
deleted file mode 100644
index f14a323a0..000000000
--- a/doc/template/patch.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# Patcher un template
-
-Il peut être intéressant de réaliser un patch à un template pour corriger un problème spécifique à notre environnement, sans attendre que le mainteneur du template n'est fait la correction.
-
-Par exemple le template :
-
-```
-The value: %%my_value
-
-The extra value: %%example.my_variable_extra
-```
-
-Peut être modifié via le patch :
-
-```patch
---- tmpl/example.conf 2021-02-13 19:41:38.677491087 +0100
-+++ tmp/example.conf 2021-02-13 20:12:55.525089820 +0100
-@@ -1,3 +1,5 @@
- The value: %%my_variable
-
- The extra value: %%example.my_variable_extra
-+
-+Add by a patch
-```
-
-Le fichier généré ressemblera alors à cela :
-
-```
-The value: my_value
-
-The extra value: my_value_extra
-
-Add by a patch
-```
-
-Deux choses importantes à savoir sur les patchs :
-
-- le nom du patch est obligatoire le nom du template source + ".patch"
-- la deuxième ligne doit toujours commencer par "+++ tmp/" (tmp étant le nom du répertoire mis dans la configuration) + le nom du template source
diff --git a/doc/variable/README.md b/doc/variable/README.md
index 4373b5ed4..1c1db814c 100644
--- a/doc/variable/README.md
+++ b/doc/variable/README.md
@@ -1,480 +1,5 @@
# Variable
-## Un variable
+ - [Une variable](simple.md)
+ - [Types de variable](type.md)
-Une variable est forcement dans [variables](../variables.md) ou dans une [famille](../family/README.md).
-
-Une variable est déjà un nom. C'est à dire qu'on pourra utiliser plus tard la variable via ce nom.
-
-```xml
-
-
-
-
-
-
-```
-
-En YAML :
-
-```yml
-variables:
-- variable:
- name: my_variable
-- family:
- name: my_family
- variables:
- - variable:
- name: my_family_variable
-```
-
-## Description et aide sur la variable
-
-En plus d'un nom, il est possible de mettre une "description" à la variable. C'est une information "utilisateur" qui nous permettra d'avoir des informations complémentaires sur le contenu de cette variable :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-variables:
-- variable:
- name: my_variable
- description: This is a good variable
-```
-
-En plus de la description, il est possible de préciser une aide complémentaire :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-variables:
-- variable:
- name: my_variable
- help: This is a good variable
-```
-
-Cette aide peut être utilisé à tout moment comme valeur [d'un paramètre](../param/information.md).
-
-## Le type de la variable
-
-Une variable a un type. Ce type permet de définir les valeurs acceptées par cette variable :
-
-- string : chaine de caractère (type par défaut)
-- number : un nombre
-- float : un chiffre flottant
-- boolean : "True" ou "False", si aucune valeur n'est défini la valeur par défaut de cette variable sera "True", ces variables sont également obligatoire par défaut
-- secret (ou password mais est obsolète) : un secret (comme un mot de passe, une clef privée, ...)
-- mail : une adresse mail
-- filename : nom de fichier au sens Unix (exemple : "/etc/passwd")
-- date : une date au format "%Y-%m-%d" (exemple : "2021-01-30")
-- unix_user : nom d'utilisateur au sens Unix
-- ip : n'importe quelle adresse IPv4
-- cidr : n'importe quelle adresse IPv4 au format CIDR
-- local_ip : adresse IPv4 sur un réseau local, si l'adresse IPv4 n'est pas local, un warning sera afficher mais la valeur sera accepté tout de même
-- netmask : masque d'une adresse IPv4
-- network : adresse réseau
-- network_cidr : adresse réseau au format CIDR
-- broadcast : adresse de diffusion
-- netbios : nom netbios
-- domain : nom de domaine
-- hostname : nom d'hôte
-- web_address : adresse web (http://www.silique.fr/)
-- port : port
-- mac : adresse MAC
-- schedule : périodicité du schedule, les valeurs possibles sont "none", "daily", "weekly" ou "monthly"
-- schedulemod : type de schedule, les valeurs possibles sont "pre" ou "post"
-
-Pour définir le type d'une variable :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- type: number
-```
-
-## Variable à valeur multiple
-
-Par défaut une variable ne peut acceuillir qu'une seule valeur. Il peut être utile de pouvoir spécifier plusieurs valeurs à une même variable.
-
-Pour définir une variable à valeur multiple :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- multi: true
-```
-
-Par défaut, les variables multiples ne peuvent pas avoir deux fois la même valeur.
-
-Si vous voulez pouvoir mettre plusieurs fois la même valeur, il faut utiliser l'attribut "unique" :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- multi: true
- unique: false
-```
-
-## Variable invisible
-
-Il est possible de cacher une variable.
-
-Cacher une variable signifie qu'elle ne sera pas visible lorsqu'on modifie la configuration du service.
-Par contre cette variable sera accessibles lorsqu'on va l'utiliser.
-
-Pour cacher une variable :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- hidden: true
-```
-
-## Variable désactive
-
-Il est possible de désactiver une variable.
-
-Désactiver une variable signifie qu'elle ne sera pas visible lorsqu'on modifie la configuration du service mais également lorsqu'on va l'utiliser.
-
-Pour désactiver une variable :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- disabled: true
-```
-
-## Variable obligatoire
-
-Variable dont une valeur est requise :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- mandatory: true
-```
-
-Les variables booléans sont par défaut obligatoire. Pour qu'une variable booléan ne soit pas obligatoire il faut le préciser explicitement :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- type: boolean
- mandatory: false
-```
-
-Les variables avec une valeur par défaut (non calculée) sont également automatiquement obligatoire.
-
-## Valeur par défaut d'une variable
-
-Il est possible de fixer les valeurs par défaut d'une variable :
-
-```xml
-
- value
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- value:
- - text: value
-```
-
-Pour une variable multiple, il est possible de préciser plusieurs valeurs :
-
-```xml
-
- value 1
- value 2
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- multi: true
- value:
- - text: value 1
- - text: value 2
-```
-
-Si la variable n'est pas pas une [variable meneuse](../family/leadership.md), la première valeur défini dans cette liste sera également la valeur par défaut proposé si on ajoute une nouvelle valeur à cette variable.
-
-Une valeur par défaut peut également être [une valeur calculer](../fill/README.md).
-
-## Redéfinir une variable
-
-Il est possible de définir une variable dans un dictionnaire et de changer son comportement dans une second dictionnaire.
-
-Attention trois attributs ne sont redéfinisable :
-
-- name
-- type
-- multi
-
-Créons notre variable :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
-```
-
-Et redéfinisons là :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- redefine: true
- description: New description
-```
-
-## Créer une variable inexistante
-
-Il est parfois utile de créer une variable si elle n'existe pas dans un autre dictionnaire :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- exists: false
-```
-
-Si cette variable existe dans un autre dictionnaire, elle ne sera pas modifié ni recréé
-
-## Redéfinir une variable si elle existe
-
-Parfois on veut pouvoir redéfinir une variable mais seulement dans le cas où elle existe déjà :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- exists: true
- hidden: true
-```
-
-## Variable à valeur automatiquement modifiée
-
-Une variable avec valeur automatiquement modifiée est une variable dont la valeur sera considéré comme modifié quand la propriété global "force_store_value" de Tiramisu est mise.
-
-Voici une variable a valeur automatiquement modifiée :
-
-```xml
-
- my_value
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- auto_save: true
- value:
- - text: my_value
-```
-
-Dans ce cas la valeur est fixée à la valeur actuelle.
-Par exemple, si la valeur de cette variable est issue d'un calcul, la valeur ne sera plus recalculée.
-
-Ces variables sont généralement des variables obligatoires. En effet ces variable ne sont automatiquement modifiées que si elles ont une valeurs.
-
-Une [variable meneuse ou suiveuse](../family/leadership.md) ne peut pas avoir la propriété auto_save.
-
-## Variable à valeur en lecture seule automatique
-
-Une variable avec valeur en lecture seule automatique est une variable dont la valeur ne sera plus modifiable par l'utilisateur quand la [variable "server_deployed" passe à "True"](../dev/config.md).
-
-Voici un variable à valeur en lecture seule automatique :
-
-```xml
-
- False
-
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: server_deployed
- type: boolean
- value:
- - text: 'False
-- variable:
- name: my_variable
- auto_freeze: true
-```
-
-Dans ce cas la valeur est fixée à la valeur actuelle et elle ne sera plus modifiable par l'utilisateur.
-Par exemple, si la valeur de cette variable est issue d'un calcul, la valeur ne sera plus recalculée.
-
-Ces variables sont généralement des variables obligatoires. En effet ces variable ne sont en lecteur seul que si elles ont une valeurs.
-
-Une [variable meneuse ou suiveuse](../family/leadership.md) ne peut pas avoir la propriété auto_freeze.
-
-## Information "test"
-
-L'attribut "test" est un attribut spécial qui permet aux concepteurs d'un dictionnaire d'influancer le robot de test en précisant de valeurs utile à tester.
-
-Concrêtement, le contenu de cet attribut est enregister dans une "information" de l'option Tiramisu correspondante.
-
-Exemple :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- test: yes
-```
-
-Il est possible de préciser plusieurs valeurs avec le séparateur "|" :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- test: yes|no
-```
-
-Cette valeur peut être utilisé à tout moment comme valeur [d'un paramètre](../param/information.md).
-
-## Mode de la variable
-
-Le [mode](../mode.md) par défaut d'une variable correspond au [mode](../mode.md) de la [famille](../family/README.md).
-
-Cas particuliers :
-
-- une variable à valeur automatiquement modifiée ou une variable en lecture seule automatique est par défaut en mode "basic".
-- si la variable n'est pas dans une famille, la variable aura le mode "normal" par défaut.
-- une variable obligatoire sans valeur par défaut (calculer ou non) aura le mode "basic".
-
-Pour définir le [mode](../mode.md) :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- mode: expert
-```
-
-## Les variables qui fournissent des valeurs
-
-Il peut être intéressant de retrouver facilement des variables sans connaitre le chemin complet mais en utilisant le contenu du paramètre "provider".
-C'est particulièrement utile si un service peut être fournit par plusieurs services. Les variables n'auront donc pas le même nom. Utiliser ce paramètre, permet donc de retrouver facilement la variable.
-
-Pour déclarer :
-
-```xml
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- provider: my_variable
-```
-
-Dans le code de l'application, on pourra retrouver le chemin de la variable en faisant :
-
-```python
-print(await config.information.get('provider:my_function'))
-```
-
-Pour les variables inclusent dans une famille dynamique, le chemin de la variable sera un template comme ceci "rougail.family_{suffix}.my_variable_{suffix}". Il vous suffit de remplacer "{suffix}" par le suffix voulu de la famille dynamique.
diff --git a/doc/variable/choice.md b/doc/variable/choice.md
deleted file mode 100644
index 534b5effa..000000000
--- a/doc/variable/choice.md
+++ /dev/null
@@ -1,186 +0,0 @@
-# Les variables à choix
-
-## Une variable à choix
-
-Il est possible d'imposer une liste de valeur pour une variable particulière :
-
-```xml
-
- val1
- val2
- val3
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- type: choice
- choice:
- - text: val1
- - text: val2
- - text: val3
-```
-
-Dans ce cas, seules les valeurs proposées sont possibles pour cette variable.
-Cette variable n'est pas obligatoire dont il est possible de mettre la valeur "None".
-
-Si la variable est obligatoire ou si une valeur est précisée (la variable passe obligatoire) alors la valeur "None" n'est plus autorisé :
-
-```xml
-
- val1
- val2
- val3
- val1
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- type: choice
- choice:
- - text: val1
- - text: val2
- - text: val3
- value:
- - text: val1
-```
-
-## Un variable à choix typée
-
-Par défaut les choix sont de type "string". Il est possible de préciser des nombres, des booléens ou la valeur None :
-
-```xml
-
- val1
- val2
- 3
- True
-
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- type: choice
- choice:
- - text: val1
- - type: string
- text: val2
- - type: number
- text: 3
- - type: boolean
- text: true
- - type: 'nil'
-```
-
-Comme vu précédement ajouter la valeur None n'est pas utile parce qu'elle est automatiquement ajouté si la variable n'est pas obligatoire.
-
-## Ajouter une option à une variable à choix existante
-
-Pour ajouter un choix à une variable à choix existante, rien de plus simple, juste redéfinir la variable en ajoutant le choix voulu :
-
-```xml
-
- val4
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- redefine: true
- choice:
- - text: val4
-```
-
-## Redéfinir une option à choix
-
-Si on veut supprimer un choix ou redéfinir complètement la liste, il faut redéfinir cette variable et ajouter l'attribut "remove_choice" à "True" :
-
-```xml
-
- val1
- val2
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- redefine: true
- remove_choice: true
- choice:
- - text: val1
- - text: val2
-```
-
-Dans ce cas toutes les anciens choix ne seront plus possible. Seuls les nouveaux le seront.
-
-## Un variable à choix provenant d'une variable
-
-Une variable à valeur multiple peut servir de source des choix :
-
-```xml
-
- other_variable
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- type: choice
- choice:
- - type: variable
- text: other_variable
-```
-
-Dans ce cas, toutes les valeurs de la variable seront des choix utilisables par l'utilisateur.
-Seul un choice de type "variable" est possible par variable.
-
-## Un variable à choix provenant d'une fonction
-
-```xml
-
-
- 0
- 10
-
- 9
-
-```
-
-En YAML :
-
-```yml
-- variable:
- name: my_variable
- type: choice
- choice:
- - type: function
- name: range
- param:
- - type: number
- text: 0
- - type: number
- text: 10
- value:
- - type: number
- text: 9
-```
diff --git a/doc/variable/firefox.png b/doc/variable/firefox.png
new file mode 100644
index 000000000..050f837f4
Binary files /dev/null and b/doc/variable/firefox.png differ
diff --git a/doc/variable/foxyproxy.png b/doc/variable/foxyproxy.png
new file mode 100644
index 000000000..418dad01d
Binary files /dev/null and b/doc/variable/foxyproxy.png differ
diff --git a/doc/variable/getting_starting.md b/doc/variable/getting_starting.md
new file mode 100644
index 000000000..ed51214c1
--- /dev/null
+++ b/doc/variable/getting_starting.md
@@ -0,0 +1,619 @@
+---
+gitea: none
+include_toc: true
+---
+
+# Construire une liste d'options
+
+Rougail permet de construite des options [Tiramisu](https://forge.cloud.silique.fr/gnunux/tiramisu) a partir de dictionnaire écrit en YAML.
+Le principal avantage étant que l'écrire de option est beaucoup plus simple.
+
+Une fois chargé, on retrouve toute la puissance de Tiramisu dans la gestion de la configuration.
+
+Avant de commencer, il faut connaitre les spécificités du format de fichier YAML, des notions de Jinja et de Tiramisu.
+
+# La configuration du proxy type Mozilla Firefox
+
+L'objectif de ce première exemple est de reproduire cette page de paramètres de Mozilla Firefox :
+
+
+
+Les variables vont être créées dans plusieurs fichiers dans un but didactique. Bien évidement toutes les variables pourront être mise dans le même fichier.
+
+## La famille proxy
+
+Nous allons classer toutes ces variables dans une famille.
+Cette famille s'appelera proxy. Créons le premier fichier dict/00-proxy.yml
+
+```yml
+---
+version: '1.0'
+proxy:
+ description: Configure Proxy Access to the Internet
+ type: family
+```
+
+Le type de la famille est ici précisé parce qu'on n'a pas de variable ou de famille à l'intérieur de cette famille. Le moteur pensera alors que c'est une simple variable.
+
+## Le type de proxy
+
+Il est possible de définir plusieurs modes de configuration du proxy (de "pas de proxy" à "la configuration d'un fichier de configuration automatique").
+
+Nous allons donc créer une première variable dans cette famille dont la description est "Proxy mode". Créons le deuxième fichier dict/01-proxy\_mode.yml
+
+```yml
+---
+version: '1.0'
+proxy:
+ proxy_mode:
+ description: Proxy mode
+ type: choice
+ choices:
+ - No proxy
+ - Auto-detect proxy settings for this network
+ - Use system proxy settings
+ - Manual proxy configuration
+ - Automatic proxy configuration URL
+ default: No proxy
+ mandatory: true
+```
+
+Cette variable nécessite une valeur (la valeur `None` n'est pas acceptable), elle est donc obligatoire (`mandatory`).
+
+Si l'utilisateur ne précise pas de valeurs, la valeur de cette variable sera "No proxy" (`default`).
+
+La variable est à choix (`type`: choice) donc la liste des valeurs disponible est contrainte (`choices`), seul les valeurs suivantes sont autorisés :
+
+- No proxy
+- Auto-detect proxy settings for this network
+- Use system proxy settings
+- Manual proxy configuration
+- Automatic proxy configuration URL
+
+Testons nos deux premiers dictionnaires :
+
+```python
+>>> from rougail import Rougail, RougailConfig
+>>> from pprint import pprint
+>>> RougailConfig['dictionaries_dir'] = ['dict']
+>>> rougail = Rougail()
+>>> config = rougail.get_config()
+>>> config.property.read_only()
+>>> pprint(config.value.dict(), sort_dicts=False)
+{'rougail.proxy.proxy_mode': 'No proxy'}
+```
+
+## Le mode manuel
+
+Si l'utilisateur choisi le mode de proxy "Manual proxy configuration", on veut voir apparaitre (`disabled`) une nouvelle sous-famille appelé manual. Créons le fichier dict/02-proxy\_manual.yml :
+
+```yml
+---
+version: '1.0'
+proxy:
+ manual:
+ description: Manual proxy configuration
+ type: family
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.proxy.proxy_mode != 'Manual proxy configuration' %}
+ the mode proxy is not manual
+ {% endif %}
+```
+
+### La configuration du proxy HTTP
+
+Dans cette famille ajoutons une sous-famille `http_proxy` contenant les variables `address` et `port`. Créons le fichier dict/03-proxy\_manual\_http\_proxy.yml :
+
+```yml
+---
+version: '1.0'
+proxy:
+ manual:
+ http_proxy:
+ description: HTTP Proxy
+ address:
+ description: HTTP address
+ type: domainname
+ mandatory: true
+ port:
+ description: HTTP Port
+ type: port
+ default: '8080'
+```
+
+Les deux variables ont des types particuliers (`domainname` ou `port`) pour valider les valeurs configurer par l'utilisateur.
+
+Pas la peine de précisé le type de `http_proxy` parce qu'on a déclaré les sous-variables dans ce fichier.
+
+### Dupliquer la configuration HTTP vers HTTPS
+
+On veux proposer à l'utilisateur la possiblité de renseigner le même proxy pour les requêtes HTTPS. Créons le fichier dict/04-proxy\_manual\_http\_use\_for\_https.yml :
+
+```yml
+version: '1.0'
+proxy:
+ manual:
+ use_for_https:
+ description: Also use this proxy for HTTPS
+ type: boolean
+```
+
+Cette variable est de type `boolean`. Sa valeur par défaut est `True`.
+
+### La configuration du proxy HTTPS
+
+Ajoutons une nouvelle sous-famille `ssl_proxy` avec les variables `address` et `port`. Créons le fichier dict/05-proxy\_manual\_ssl\_proxy.yml :
+
+```yml
+version: '1.0'
+proxy:
+ manual:
+ ssl_proxy:
+ description: HTTPS Proxy
+ hidden:
+ type: variable
+ variable: rougail.proxy.manual.use_for_https
+ address:
+ description: HTTPS address
+ type: domainname
+ default:
+ type: jinja
+ jinja: |
+ {% if rougail.proxy.manual.use_for_https %}
+ {{ rougail.proxy.manual.http_proxy.address }}
+ {% endif %}
+ mandatory: true
+ port:
+ description: HTTPS Port
+ type: port
+ default:
+ type: jinja
+ jinja: |
+ {% if rougail.proxy.manual.use_for_https %}
+ {{ rougail.proxy.manual.http_proxy.port }}
+ {% endif %}
+ mandatory: true
+```
+
+On vient de recréer un variable avec le nom "address". Ce n'est pas un problème, puisqu'elle est dans une autre famille.
+
+Suivant la valeur de la variable `rougail.proxy.mandatory.use_for_https` (sans passé par une fonction Jinja ce coup-ci) cette famille apparaitra ou disparaitra (`hidden`). Contrairement à tout à l'heure, la famille n'est pas désactivé (`disabled`) parce que les variables devront rester accessible en mode lecture seule.
+
+Testons ce point précis :
+
+```python
+>>> from rougail import Rougail, RougailConfig
+>>> from pprint import pprint
+>>> RougailConfig['dictionaries_dir'] = ['dict']
+>>> rougail = Rougail()
+>>> config = rougail.get_config()
+>>> config.property.read_only()
+>>> pprint(config.value.dict(), sort_dicts=False)
+{'rougail.proxy.proxy_mode': 'No proxy'}
+>>> config.property.read_write()
+>>> config.option('rougail.proxy.proxy_mode').value.set('Manual proxy configuration')
+>>> config.option('rougail.proxy.manual.http_proxy.address').value.set('proxy.example')
+>>> pprint(config.value.dict(), sort_dicts=False)
+{'rougail.proxy.proxy_mode': 'Manual proxy configuration',
+ 'rougail.proxy.manual.http_proxy.address': 'proxy.example',
+ 'rougail.proxy.manual.http_proxy.port': '8080',
+ 'rougail.proxy.manual.use_for_https': True}
+>>> config.property.read_only()
+>>> pprint(config.value.dict(), sort_dicts=False)
+{'rougail.proxy.proxy_mode': 'Manual proxy configuration',
+ 'rougail.proxy.manual.http_proxy.address': 'proxy.example',
+ 'rougail.proxy.manual.http_proxy.port': '8080',
+ 'rougail.proxy.manual.use_for_https': True,
+ 'rougail.proxy.manual.ssl_proxy.address': 'proxy.example',
+ 'rougail.proxy.manual.ssl_proxy.port': '8080'}
+```
+
+Alors que la famille `rougail.proxy.manual` n'était pas présente lors que `rougail.proxy.proxy_mode` est à `No proxy`, la famille `rougail.proxy.manual.ssl_proxy` devient visible en mode lecture seule (et uniquement en mode lecture seule) si `rougail.proxy.manual.use_for_https` est à 'True'.
+
+On voit bien également que les valeurs des variables de `rougail.proxy.manual.http_proxy` on bien été copié dans `rougail.proxy.manual.ssl_proxy`. Ces valeurs ne seront copié que si `use_for_https` est à "True" comme précisé dans les valeurs par défaut des variables.
+
+De plus, si l'utilisateur modifie la valeur de la variable `rougail.proxy.manual.ssl_proxy.address` mais qu'il cache par la suite cette variable, la valeur de cette variable reviens à la valeur par défaut :
+
+```python
+>>> config.property.read_write()
+>>> config.option('rougail.proxy.manual.use_for_https').value.set(False)
+>>> config.option('rougail.proxy.manual.ssl_proxy.address').value.set('other.proxy.example')
+>>> pprint(config.value.dict(), sort_dicts=False)
+{'rougail.proxy.proxy_mode': 'Manual proxy configuration',
+ 'rougail.proxy.manual.http_proxy.address': 'proxy.example',
+ 'rougail.proxy.manual.http_proxy.port': '8080',
+ 'rougail.proxy.manual.use_for_https': False,
+ 'rougail.proxy.manual.ssl_proxy.address': 'other.proxy.example',
+ 'rougail.proxy.manual.ssl_proxy.port': '8080'}
+>>> config.option('rougail.proxy.manual.use_for_https').value.set(False)
+>>> config.property.read_only()
+>>> pprint(config.value.dict(), sort_dicts=False)
+{'rougail.proxy.proxy_mode': 'Manual proxy configuration',
+ 'rougail.proxy.manual.http_proxy.address': 'proxy.example',
+ 'rougail.proxy.manual.http_proxy.port': '8080',
+ 'rougail.proxy.manual.use_for_https': False,
+ 'rougail.proxy.manual.ssl_proxy.address': 'proxy.example',
+ 'rougail.proxy.manual.ssl_proxy.port': '8080'}
+```
+
+### La configuration du proxy SOCKS
+
+Ajoutons une nouvelle sous-famille `socks_proxy` avec les variables `address`, `port` et `version`. Créons le fichier dict/06-proxy\_manual\_socks\_proxy.yml :
+
+```yml
+version: '1.0'
+proxy:
+ manual:
+ socks_proxy:
+ description: SOCKS Proxy
+ address:
+ description: SOCKS Address
+ type: domainname
+ port:
+ description: SOCKS Port
+ type: port
+ version:
+ description: SOCKS host version used by proxy
+ type: choice
+ choices:
+ - v4
+ - v5
+ default: v5
+```
+
+## Le mode détection automatique
+
+Ajoutons une nouvelle sous-variable `auto`. Créons le fichier dict/07-proxy\_auto.yml :
+
+```yml
+version: '1.0'
+proxy:
+ auto:
+ type: web_address
+ description: Automatic proxy configuration URL
+ mandatory: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.proxy.proxy_mode != 'Automatic proxy configuration URL' %}
+ the proxy mode is not automatic
+ {% endif %}
+```
+
+Le type `web_address` impose une valeur qui commence par http:// ou https://.
+
+## Les exceptions au proxy
+
+Enfin ajoutons une variable contenant les exceptions au proxy. Pour cela créons le fichier dict/07-proxy\_no\_proxy.yml :
+
+```yml
+version: '1.0'
+proxy:
+ no_proxy:
+ description: Address for which proxy will be desactivated
+ multi: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.proxy.proxy_mode == 'No proxy' %}
+ proxy mode is no proxy
+ {% endif %}
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.no_proxy | valid_no_proxy }}'
+```
+
+Il peut y avoir plusieurs exceptions au proxy au proxy, la variable est donc `multi`.
+Cette varible n'est pas accessible uniquement si aucun proxy n'est défini.
+
+Enfin, on veut valider le contenu de la variable. Il n'y a pas de type correspond dans Rougail, donc on fait la fonction de validation suivante dans le fichier `functions.py` :
+
+```python
+from tiramisu import DomainnameOption
+
+
+def valid_no_proxy(value: str):
+ try:
+ DomainnameOption('',
+ '',
+ value,
+ allow_ip=True,
+ allow_cidr_network=True,
+ allow_without_dot=True,
+ allow_startswith_dot=True,
+ )
+ except ValueError as err:
+ return err
+```
+
+Pour tester :
+
+```python
+from rougail import Rougail, RougailConfig
+RougailConfig['functions_file'] = 'functions.py'
+from pprint import pprint
+
+RougailConfig['dictionaries_dir'] = ['dict']
+rougail = Rougail()
+config = rougail.get_config()
+config.property.read_only()
+pprint(config.value.dict(), sort_dicts=False)
+```
+
+## La demande d'authentification
+
+Rien de particulier à la création de la demande d'authentification. Pour cela créons le fichier dict/08-proxy\_prompt\_authentication.yml :
+
+```yml
+version: '1.0'
+proxy:
+ prompt_authentication:
+ description: Prompt for authentication if password is saved
+ type: boolean
+ default: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.proxy.proxy_mode == 'No proxy' %}
+ proxy mode is no proxy
+ {% endif %}
+```
+
+## Le DNS du proxy SOCKS v5
+
+La question sur le DNS pour le proxy SOCKS v5 n'apparait que si le proxy est configuré et que la version du proxy SOCKS sélectionné est bien la "v5".
+
+Créons le fichier dict.09-proxy\_proxy\_dns\_socks5.yml :
+
+```yml
+version: '1.0'
+proxy:
+ proxy_dns_socks5:
+ description: Use proxy DNS when using SOCKS v5
+ type: boolean
+ default: false
+ disabled:
+ type: jinja
+ params:
+ socks_version:
+ type: variable
+ variable: rougail.proxy.manual.socks_proxy.version
+ propertyerror: false
+ jinja: |
+ {% if rougail.proxy.proxy_mode == 'No proxy' %}
+ the proxy mode is no proxy
+ {% elif socks_version is undefined or socks_version == 'v4' %}
+ socks version is v4
+ {% else %}
+ false
+ {% endif %}
+```
+
+La difficulté ici c'est que la variable `rougail.proxy.manual.socks_proxy.version` peut être désactivé (et donc non utilisable dans un calcul).
+Dans ce cas, nous allons ajouter un paramètre (ici appelé `socks_version`) qui contiendra, s'il n'y a pas d'erreur de propriété, la valeur de la variable.
+Sinon le paramètre ne sera pas passé au template Jinja. C'est pourquoi il faut tester dans le template Jinja si la variable `socks_version` existe bien.
+
+## Le DNS à travers HTTPS
+
+Enfin nous allons configurer le DNS à travers HTTPS dans le fichier 10-proxy\_dns\_over\_https.yml :
+
+```yml
+version: '1.0'
+proxy:
+ dns_over_https:
+ description: DNS over HTTPS
+ enable_dns_over_https:
+ description: Enable DNS over HTTPS
+ type: boolean
+ default: false
+ provider:
+ description: Use Provider
+ type: choice
+ choices:
+ - Cloudflare
+ - NextDNS
+ - Custom
+ default: Cloudflare
+ disabled:
+ type: jinja
+ jinja: |
+ {% if not rougail.proxy.dns_over_https.enable_dns_over_https %}
+ Enable DNS over HTTPS is False
+ {% endif %}
+ custom_dns_url:
+ description: Custom DNS URL
+ type: web_address
+ mandatory: true
+ disabled:
+ type: jinja
+ params:
+ provider:
+ type: variable
+ variable: rougail.proxy.dns_over_https.provider
+ propertyerror: false
+ jinja: |
+ {% if provider is defined or provider != 'Custom' %}
+ provider is not custom
+ {% endif %}
+ validators:
+ - type: jinja
+ jinja: |
+ {% if rougail.proxy.dns_over_https.custom_dns_url.startswith('http://') %}
+ only https is allowed
+ {% endif %}
+```
+
+La seule particularitée ici est qu'on a ajouté une validation supplémentaire à la variable `custom_dns_url`. Seul une adresse commençant par https:// est autorisé (pas http://).
+
+
+# La configuration du proxy type FoxyProxy
+
+Voici maintenant l'intégration d'une partie du plugin Firefox FoxyProxy.
+
+L'idée est d'avoir un espace de nom spécifique à FoxyProxy et de retrouver dedans une partie du paramétrage qu'on aura fait dans l'espace de nom principal.
+
+Voici à quoi ressemble la page :
+
+
+
+Il est possible, dans ce plugin, de spécifié un nombre illimité de proxy.
+Notre famille "proxy" ne sera plus de type "family" comme tout a l'heure mais du type "leadership".
+
+Voici le contenu complet de la configuration du proxy type FoxyProxy à mettre dans le fichier foxyproxy/00-base.yml :
+
+```yml
+---
+version: '1.0'
+proxy:
+ _type: leadership
+ title:
+ description: Title or Description
+ multi: true
+ color:
+ description: Color
+ mandatory: true
+ type:
+ type: choice
+ choices:
+ - HTTP
+ - HTTPS/SSL
+ - SOCKS5
+ - SOCKS4
+ - PAC URL
+ - WPAD
+ - System (use system settings)
+ - Direct (no proxy)
+ default: Direct (no proxy)
+ address:
+ description: IP address, DNS name, server name
+ multi: true
+ mandatory: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if foxyproxy.proxy.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS5', 'SOCKS4'] %}
+ proxy does not need address
+ {% endif %}
+ port:
+ description: Port
+ type: port
+ mandatory: true
+ default:
+ type: jinja
+ params:
+ firefox_port:
+ type: variable
+ variable: rougail.proxy.manual.http_proxy.port
+ propertyerror: false
+ jinja: |
+ {% if firefox_port is not undefined %}
+ {{ firefox_port }}
+ {% endif %}
+ disabled:
+ type: jinja
+ jinja: |
+ {% if foxyproxy.proxy.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS5', 'SOCKS4'] %}
+ proxy does not need port
+ {% endif %}
+ username:
+ description: Username
+ type: unix_user
+ mandatory:
+ type: jinja
+ jinja: |
+ {% if foxyproxy.proxy.password %}
+ username is mandatory
+ {% endif %}
+ disabled:
+ type: jinja
+ jinja: |
+ {% if foxyproxy.proxy.type not ['HTTP', 'HTTPS/SSL', 'SOCKS5', 'SOCKS4'] %}
+ proxy does not need username
+ {% endif %}
+ password:
+ description: Password
+ type: secret
+ disabled:
+ type: jinja
+ jinja: |
+ {% if foxyproxy.proxy.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS5', 'SOCKS4'] %}
+ proxy does not need password
+ {% endif %}
+ url:
+ type: web_address
+ disabled:
+ type: jinja
+ jinja: |
+ {% if foxyproxy.proxy.type not in ['PAC URL', 'WPAD'] %}
+ proxy does not need url
+ {% endif %}
+```
+
+Quelques remarques :
+
+- dans la famille meneuse `foxyproxy.proxy` il y a une variable "type", donc pour spécifier le type on utilise l'attribut `_type`
+- une variable suiveuse peut également être multiple (ce qui est le cas de `foxyproxy.proxy.address`
+- `foxyproxy.proxy.username` devient obligatoire si `foxyproxy.proxy.password` est spécifié, en effet un mot de passe sans nom d'utilisateur n'a pas de sens
+
+Testons :
+
+```yml
+>>> from rougail import Rougail, RougailConfig
+>>> from pprint import pprint
+>>> RougailConfig['dictionaries_dir'] = ['dict']
+>>> RougailConfig['extra_dictionaries']['foxyproxy'] = ['foxyproxy/']
+>>> RougailConfig['functions_file'] = 'functions.py'
+>>> rougail = Rougail()
+>>> config = rougail.get_config()
+>>> config.option('rougail.proxy.proxy_mode').value.set('Manual proxy configuration')
+>>> config.option('rougail.proxy.manual.http_proxy.address').value.set('proxy.example')
+>>> config.option('foxyproxy.proxy.title').value.set(['MyProxy'])
+>>> config.option('foxyproxy.proxy.type', 0).value.set('HTTP')
+>>> config.option('foxyproxy.proxy.color', 0).value.set('#00000')
+>>> config.property.read_only()
+>>> pprint(config.value.dict(), sort_dicts=False)
+{'rougail.proxy.proxy_mode': 'Manual proxy configuration',
+ 'rougail.proxy.manual.http_proxy.address': 'proxy.example',
+ 'rougail.proxy.manual.http_proxy.port': '8080',
+ 'rougail.proxy.manual.use_for_https': True,
+ 'rougail.proxy.manual.ssl_proxy.address': 'proxy.example',
+ 'rougail.proxy.manual.ssl_proxy.port': '8080',
+ 'rougail.proxy.manual.socks_proxy.address': None,
+ 'rougail.proxy.manual.socks_proxy.port': None,
+ 'rougail.proxy.manual.socks_proxy.version': 'v5',
+ 'rougail.proxy.no_proxy': [],
+ 'rougail.proxy.prompt_authentication': True,
+ 'rougail.proxy.proxy_dns_socks5': False,
+ 'rougail.proxy.dns_over_https.enable_dns_over_https': False,
+ 'foxyproxy.proxy.title': [{'foxyproxy.proxy.title': 'MyProxy',
+ 'foxyproxy.proxy.color': '#00000',
+ 'foxyproxy.proxy.type': 'HTTP',
+ 'foxyproxy.proxy.address': ['proxy.example'],
+ 'foxyproxy.proxy.port': '8080',
+ 'foxyproxy.proxy.username': None,
+ 'foxyproxy.proxy.password': None}]}
+
+```
+
+Concernant `foxyproxy.proxy.username` et `foxyproxy.proxy.password`, pour éviter une boucle infini, on ne peut pas dire que `foxyproxy.proxy.password` est désactivé si `foxyproxy.proxy.username` est vide (ce qui pourrait être une option intéressante).
+
+Dans ce cas il ne faut pas tester la valeur obligatoire.
+
+Si vous préférez cette option, voici un second dictionnaire extra "foxyproxy/01-redefine.xml" qui va redéfinir le comportement uniquement des variable `foxyproxy.proxy.username` et `foxyproxy.proxy.password` :
+
+```yml
+---
+foxyproxy:
+ username:
+ redefine: true
+ mandatory: false
+ password:
+ hidden:
+ type: jinja
+ jinja: |
+ {% if not rougail.foxyproxy.username %}
+ no username defined
+ {% endif %}
+```
diff --git a/doc/mode.md b/doc/variable/mode.md
similarity index 100%
rename from doc/mode.md
rename to doc/variable/mode.md
diff --git a/doc/variable/simple.md b/doc/variable/simple.md
new file mode 100644
index 000000000..cc1645057
--- /dev/null
+++ b/doc/variable/simple.md
@@ -0,0 +1,103 @@
+# Variable
+
+## Synopsis
+
+Une variable est un conteneur qui contiendra une ou plusieurs valeurs.
+
+## Paramètres
+
+| Paramètre | Commentaires |
+|-----------|--------------|
+| **name**
`string`
`mandatory` | Nom de la variable.
C'est avec ce nom qu'on va pouvoir interagir avec la variable.
Il est préférable de suivre la [convention sur les noms de variable](convention.md). |
+| **type**
`string` | Type de la variable.
[Voir la liste des types de variable possibles](type.md).
**Valeur par défaut :** string |
+| **description**
`string` | La description de la variable.
Information utilisateur permettant de comprendre l'utilité de la variable. |
+| **help**
`string` | Aide complémentaire associée à la variable. |
+| **default** | Valeur(s) par défaut de la variable.
Cet valeur est typé, il faut remplir correctement le fichier YAML pour ne pas définir une valeur avec un type incorrect. Par exemple, un "number" doit êre un chiffre, une variable multiple doit être une liste, ...
Pour une variable multiple non [meneuse](../family/leadership.md), la première valeur défini dans la liste sera également la valeur par défaut proposée si on ajoute une nouvelle valeur à cette variable. |
+| **auto_save**
`boolean` | Variable à valeur automatiquement modifiée.
Une variable avec valeur automatiquement modifiée est une variable dont la valeur sera considéré comme modifié par l'utilisateur (ce n'est plus une valeur par défaut).
Par exemple, si la valeur de cette variable est issue d'un calcul, la valeur ne sera plus recalculée.
Ces variables sont généralement des variables obligatoires. En effet ces variable ne sont automatiquement modifiées que si elles ont une valeurs.
Une [variable meneuse ou suiveuse](../family/leadership.md) ne peut pas avoir la propriété `auto_save`. |
+| **mode**
`string` | [Mode](../variable/mode.md) de la variable
Le mode par défaut d'une variable est le mode de la famille parente.
Cas particulier :
-une variable à valeur automatiquement modifiée ou une variable en lecture seule automatique est par défaut en mode "basic"
- si la variable n'est pas dans une famille, la variable aura le mode "normal" par défaut.
- une variable obligatoire sans valeur par défaut (calculer ou non) aura le mode "basic". |
+| **muli**
`boolean` | La variable a pour valeur une liste. Par défaut la variable n'accepte pas de liste. |
+| **unique**
`boolean` | La variable multiple accepte plusieurs fois la même valeur. Par défaut une variable multiple n'accepte qu'une seule fois la même valeur dans la liste. |
+| **hidden**
`boolean` ou [`calculation`](../condition/README.md) | Variable invisible.
Permet de cacher une variable.
Cela signifie que la variable ne sera plus visible pour l'utilisateur mais sera visible pour un calcul.
Lorsqu'on rend invisible une variable l'utilisateur ne pourra pas modifier sa valeur, il s'il a déjà réussi à la modifier, cette valeur ne sera pas prise en compte. |
+| **disabled**
`boolean` ou [`calculation`](../condition/README.md) | Variable désactivée.
Permet de désactiver une variable.
Cela signifie que la variable ne sera plus visible pour l'utilisateur mais également pour un calcul. |
+| **mandatory**
`boolean` ou [`calculation`](../condition/README.md) | Variable obligatoire.
Variable dont une valeur est requise.
Pour une variable multiple, cela signifie que la liste ne doit pas être vide.
📝 Une variable avec une valeur par défaut non calculée ou de type "boolean" sont automatiquement considéré comme obligatoire défaut, si ce n'est pas le comportement voulu, il mettre le préciser comme cela : "mandatory: false". |
+| **redefine**
`boolean` | Il est possible de définir une variable dans un dictionnaire et de changer son comportement dans une second dictionnaire. |
+| **exists**
`boolean` | Il est parfois utile de créer une variable si elle n'existe pas dans un autre dictionnaire.
Si cette variable existe dans un autre dictionnaire, elle ne sera pas modifié ni recréé. |
+| **test**
`list` | L'attribut "test" est un attribut spécial qui permet aux concepteurs d'un dictionnaire d'influancer un robot de test en précisant de valeurs utiles à tester.
Concrêtement, le contenu de cet attribut est enregister dans une "information" de l'option Tiramisu correspondante. Cette attribut attend une liste de valeurs |
+
+## Exemples
+
+### Quelques variables de base
+
+```yml
+---
+version: '1.0'
+my_variable:
+ type: string
+ description: This is a good variable
+ help: This is the help of a good variable
+ default: value
+version: '1.0'
+my_variable_multi_1:
+ multi: true
+ default:
+ - value
+my_variable_multi_2:
+ multi: true
+ default:
+ - value1
+ - value2
+version: '1.0'
+my_variable_multi_not_unique:
+ multi: true
+ unique: false
+ default:
+ - value1
+ - value2
+ - value2
+```
+
+### Redéfinition d'une variable
+
+Créons notre variable :
+
+```yml
+---
+version: '1.0'
+my_variable:
+ type: string
+```
+
+Et redéfinisons là :
+
+```yml
+---
+version: '1.0'
+my_variable:
+ redefine: true
+ description: New description
+```
+
+### Créer une variable inexistante
+
+
+```yml
+---
+version: '1.0'
+my_variable:
+ exists: false
+```
+
+
+## Redéfinir une variable si elle existe
+
+Parfois on veut pouvoir redéfinir une variable mais seulement dans le cas où elle existe déjà :
+
+```yml
+---
+version: '1.0'
+my_variable:
+ exists: true
+ hidden: true
+```
+
+Dans ce cas la variable ne sera pas créé mais uniquement cachée si elle existe déjà.
diff --git a/doc/variable/type.md b/doc/variable/type.md
new file mode 100644
index 000000000..2ac233c46
--- /dev/null
+++ b/doc/variable/type.md
@@ -0,0 +1,164 @@
+# Les types des variables
+
+Une variable a un type.
+
+Ce type permet de définir les valeurs acceptées par cette variable.
+
+## Les types de base
+
+| valeur | Commentaires | Exemples |
+|--------|--------------|----------|
+| string | chaine de caractère (type par défaut) | test
"1"
"true" |
+| number | un nombre | 1 |
+| float | un chiffre flottant | 1.2 |
+| boolean | Un booléen, si aucune valeur n'est défini la valeur par défaut de cette variable sera "true", la variable sera également obligatoire par défaut | true
false |
+| secret | un secret (comme un mot de passe, une clef privée, ...) | hO_'hi |
+| mail | une adresse mail | test@rougail.example |
+| filename | nom de fichier au sens Unix | /etc/passwd |
+| date | une date au format "%Y-%m-%d" | 2021-01-30
+| unix\_user | nom d'utilisateur au sens Unix | test |
+| ip | n'importe quelle adresse IPv4 | 1.2.3.4 |
+| cidr | n'importe quelle adresse IPv4 au format CIDR | 1.2.3.4/24 |
+| local\_ip | adresse IPv4 sur un réseau local, si l'adresse IPv4 n'est pas local, un warning sera afficher mais la valeur sera accepté tout de même | 192.168.1.1 |
+| netmask | masque d'une adresse IPv4 | 255.255.255.0 |
+| network | adresse réseau | 192.168.1.0 |
+| network\_cidr | adresse réseau au format CIDR | 192.168.1.0/24 |
+| broadcast | adresse de diffusion | 255.255.255.255 |
+| netbios | nom netbios | machine |
+| domainname | nom de domaine | rougail.example
+| hostname | nom d'hôte | machine |
+| web\_address | adresse web | http://rougail.example |
+| port | port | 8080 |
+| mac | adresse MAC | 11:11:11:11:11:11
+| unix\_permissions | droit d'accès au fichier, répertoire, ... | 644 |
+
+## Une variable à choix
+
+Il est possible d'imposer une liste de valeur pour une variable particulière :
+
+```yml
+---
+version: '1.0'
+my_variable:
+ type: choice
+ choices:
+ - val1
+ - val2
+ - val3
+```
+
+Dans ce cas, seules les valeurs proposées sont possibles pour cette variable.
+Cette variable n'est pas obligatoire donc il est possible de mettre la valeur "None".
+
+Si la variable est obligatoire ou si une valeur est précisée (la variable passe obligatoire) alors la valeur "None" n'est plus autorisé :
+
+```yml
+---
+version: '1.0'
+my_variable:
+ type: choice
+ choices:
+ - val1
+ - val2
+ - val3
+ default: val1
+```
+
+Une variable à choix est typée :
+
+Les choix sont typés :
+
+```yml
+---
+version: '1.0'
+my_variable:
+ type: choice
+ choices:
+ - val1
+ - 3
+ - true
+ default: val1
+```
+
+dans ce cas, le chiffre 3 est autorisé mais pas la chaine de caractère "3".
+
+## Redéfinir une option à choix
+
+Si on veut supprimer un choix ou redéfinir complètement la liste, il faut redéfinir cette variable et ajouter l'attribut "remove_choice" à "True" :
+
+```yml
+---
+version: '1.0'
+my_variable:
+ redefine: true
+ choices:
+ - val1
+ - val2
+```
+
+Dans ce cas toutes les anciens choix ne seront plus possible. Seuls les nouveaux le seront.
+
+## Un variable à choix provenant de variable
+
+Les choix d'une variable peuvent provenir d'une autre variable multiple :
+
+```yml
+---
+version: '1.0'
+source_variable:
+ multi: true
+ default:
+ - val1
+ - val2
+my_variable:
+ type: choice
+ choices:
+ type: variable
+ variable: rougail.source_variable
+```
+
+Ou de plusieurs autres variables :
+
+```yml
+---
+version: '1.0'
+source_variable_1:
+ default: val1
+source_variable_2:
+ default: val2
+my_variable:
+ type: choice
+ choices:
+ - type: variable
+ variable: rougail.source_variable_1
+ - type: variable
+ variable: rougail.source_variable_2
+```
+
+Dans ce cas, toutes les valeurs de la variable ou des variables seront des choix utilisables par l'utilisateur.
+
+## Un variable à choix provenant d'une fonction jinja
+
+Faisons d'abord une fonction `trange` dans le fichier functions.py :
+
+```python
+def trange(min, max):
+ return range(min, ma
+```
+
+On va récupérer ici les valeurs de 0 à 9 :
+
+```yml
+---
+version: '1.0'
+my_variable:
+ type: choice
+ default: 9
+ choices:
+ type: jinja
+ jinja: |+
+ {% for item in trange(0, 10) %}
+ {{ item }}
+ {%- endfor %}
+ return_type: number
+```
diff --git a/doc/variables.md b/doc/variables.md
deleted file mode 100644
index de367004f..000000000
--- a/doc/variables.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Le conteneur des variables
-
-La balise "variables" est le conteneur de l'ensemble des [familles](family/README.md) et des [variables](variable/README.md).
-
-Il est placé à la racine du dictionnaire :
-
-```xml
-
-
-
-
-```
-
-En YAML :
-
-```yml
-version: '0.10'
-variables: none
-```
diff --git a/src/rougail/__init__.py b/src/rougail/__init__.py
index 0dc7e5e9d..9a1d70d53 100644
--- a/src/rougail/__init__.py
+++ b/src/rougail/__init__.py
@@ -28,8 +28,6 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
from .convert import RougailConvert
-from .template.base import RougailBaseTemplate
-from .template.systemd import RougailSystemdTemplate
from .config import RougailConfig
from tiramisu import Config
from .update import RougailUpgrade
@@ -45,22 +43,18 @@ class Rougail:
self.converted = RougailConvert(self.rougailconfig)
self.config = None
+ def add_path_prefix(self,
+ path_prefix: str,
+ ) -> None:
+ self.converted.parse_directories(path_prefix)
+
def get_config(self):
if not self.config:
- tiram_obj = self.converted.save(None)
+ tiram_obj = self.converted.save(self.rougailconfig['tiramisu_cache'])
optiondescription = {}
exec(tiram_obj, None, optiondescription)
self.config = Config(optiondescription['option_0'])
+ self.config.property.read_write()
return self.config
- def template(self,
- type: str='base',
- ) -> None:
- config = self.get_config()
- if type == 'base':
- engine = RougailBaseTemplate(config, self.rougailconfig)
- else:
- engine = RougailSystemdTemplate(config, self.rougailconfig)
- engine.instance_files()
-
-__ALL__ = ('Rougail', 'RougailConvert', 'RougailBaseTemplate', 'RougailSystemdTemplate', 'RougailConfig', 'RougailUpgrade')
+__ALL__ = ('Rougail', 'RougailConvert', 'RougailConfig', 'RougailUpgrade')
diff --git a/src/rougail/annotator/__init__.py b/src/rougail/annotator/__init__.py
index d9b17faf3..5382f8367 100644
--- a/src/rougail/annotator/__init__.py
+++ b/src/rougail/annotator/__init__.py
@@ -58,7 +58,7 @@ def get_annotators(annotators, module_name):
annotators[module_name] = []
for pathobj in importlib.resources.files(module_name).iterdir():
path = str(pathobj)
- if path.endswith('__') or path.endswith('__.py'):
+ if not path.endswith('.py') or path.endswith('__.py'):
continue
module = load_modules(path)
if 'Annotator' not in dir(module):
@@ -84,17 +84,20 @@ class SpaceAnnotator: # pylint: disable=R0903
for extra_annotator in objectspace.rougailconfig['extra_annotators']:
annotators.extend(ANNOTATORS[extra_annotator])
annotators = sorted(annotators, key=get_level)
- functions = []
+ functions = {}
functions_files = objectspace.rougailconfig['functions_file']
if not isinstance(functions_files, list):
functions_files = [functions_files]
for functions_file in functions_files:
if isfile(functions_file):
- functions.extend(dir(load_modules(functions_file)))
+ loaded_modules = load_modules(functions_file)
+ for function in dir(loaded_modules):
+ if function.startswith('_'):
+ continue
+ functions[function] = getattr(loaded_modules, function)
+ objectspace.functions = functions
for annotator in annotators:
- annotator(objectspace,
- functions,
- )
+ annotator(objectspace)
__all__ = ('SpaceAnnotator', 'CONVERT_OPTION')
diff --git a/src/rougail/annotator/check.py b/src/rougail/annotator/check.py
index d18a30a40..fd7a9b662 100644
--- a/src/rougail/annotator/check.py
+++ b/src/rougail/annotator/check.py
@@ -32,7 +32,7 @@ from copy import copy
from rougail.annotator.target import TargetAnnotator
from rougail.annotator.param import ParamAnnotator
-from rougail.annotator.fill import get_jinja_variable_to_param
+#from rougail.annotator.fill import get_jinja_variable_to_param
from rougail.i18n import _
from rougail.error import DictConsistencyError, display_xmlfiles
@@ -45,9 +45,9 @@ class Annotator(TargetAnnotator, ParamAnnotator):
level = 40
def __init__(self,
objectspace,
- functions,
*args,
):
+ return
self.objectspace = objectspace
self.only_variable = True
self.target_is_uniq = False
diff --git a/src/rougail/annotator/condition.py b/src/rougail/annotator/condition.py
index 6b2a5d84c..3b84f77ff 100644
--- a/src/rougail/annotator/condition.py
+++ b/src/rougail/annotator/condition.py
@@ -52,24 +52,22 @@ class Annotator(TargetAnnotator, ParamAnnotator, Walk):
*args,
):
self.objectspace = objectspace
- self.target_is_uniq = False
- self.only_variable = False
- self.allow_function = False
- self.force_service_value = {}
- if hasattr(objectspace.space, 'variables'):
- self.convert_auto_freeze()
- for path_prefix, constraints in self.get_constraints():
- if not hasattr(constraints, 'condition'):
- continue
- self.convert_target(constraints.condition, path_prefix)
- self.check_condition_optional(constraints, path_prefix)
- self.convert_condition_source(constraints, path_prefix)
- self.convert_param(constraints.condition, path_prefix)
- self.check_source_target(constraints)
- self.convert_xxxlist(constraints, path_prefix)
- self.check_choice_option_condition(constraints, path_prefix)
- self.remove_condition_with_empty_target(constraints)
- self.convert_condition(constraints, path_prefix)
+# self.target_is_uniq = False
+# self.only_variable = False
+# self.allow_function = False
+# self.force_service_value = {}
+ #for path_prefix, constraints in self.get_constraints():
+ # if not hasattr(constraints, 'condition'):
+ # continue
+ # self.convert_target(constraints.condition, path_prefix)
+ # self.check_condition_optional(constraints, path_prefix)
+ # self.convert_condition_source(constraints, path_prefix)
+ # self.convert_param(constraints.condition, path_prefix)
+ # self.check_source_target(constraints)
+ # self.convert_xxxlist(constraints, path_prefix)
+ # self.check_choice_option_condition(constraints, path_prefix)
+ # self.remove_condition_with_empty_target(constraints)
+ # self.convert_condition(constraints, path_prefix)
def valid_type_validation(self,
obj,
@@ -78,47 +76,6 @@ class Annotator(TargetAnnotator, ParamAnnotator, Walk):
return None
return obj.source.type
- def convert_auto_freeze(self):
- """convert auto_freeze
- only if auto_freeze_variable is True this variable is frozen
- """
- for variable in self.get_variables():
- if not variable.auto_freeze and not variable.auto_save:
- continue
- #if variable.namespace != self.objectspace.rougailconfig['variable_namespace']:
- # msg = _(f'auto_freeze is not allowed in extra "{variable.namespace}"')
- # raise DictConsistencyError(msg, 49, variable.xmlfiles)
- variable.force_store_value = True
- if variable.auto_save:
- continue
- auto_freeze_variable = self.objectspace.rougailconfig['auto_freeze_variable']
- if not self.objectspace.paths.path_is_defined(auto_freeze_variable,
- self.objectspace.rougailconfig['variable_namespace'],
- variable.path_prefix,
- ):
- msg = _(f'the variable "{variable.name}" is auto_freeze but there is no variable "{auto_freeze_variable}"')
- raise DictConsistencyError(msg, 81, variable.xmlfiles)
- new_condition = self.objectspace.condition(variable.xmlfiles)
- new_condition.name = 'auto_frozen_if_in'
- new_condition.namespace = variable.namespace
- new_condition.source = auto_freeze_variable
- new_param = self.objectspace.param(variable.xmlfiles)
- new_param.text = True
- new_condition.param = [new_param]
- new_target = self.objectspace.target(variable.xmlfiles)
- new_target.type = 'variable'
- path = variable.path
- if variable.path_prefix:
- path = path.split('.', 1)[-1]
- new_target.name = path
- new_condition.target = [new_target]
- path_prefix, constraints = next(self.get_constraints(create=True,
- path_prefix=variable.path_prefix,
- ))
- if not hasattr(constraints, 'condition'):
- constraints.condition = []
- constraints.condition.append(new_condition)
-
def check_source_target(self, constraints):
"""verify that source != target in condition
"""
@@ -404,7 +361,7 @@ class Annotator(TargetAnnotator, ParamAnnotator, Walk):
main_action,
)
if isinstance(leader_or_variable, self.objectspace.variable) and \
- (leader_or_variable.auto_save or leader_or_variable.auto_freeze) and \
+ leader_or_variable.auto_save and \
'force_default_on_freeze' in actions:
continue
for action in actions[1:]:
diff --git a/src/rougail/annotator/family.py b/src/rougail/annotator/family.py
index 9ea37148c..1228c8150 100644
--- a/src/rougail/annotator/family.py
+++ b/src/rougail/annotator/family.py
@@ -54,8 +54,9 @@ class Annotator(Walk):
objectspace,
*args,
):
+ self.mode_auto = []
self.objectspace = objectspace
- if not hasattr(self.objectspace.space, 'variables'):
+ if not self.objectspace.paths:
return
self.modes = {name: Mode(idx) for idx, name in enumerate(self.objectspace.rougailconfig['modes_level'])}
self.remove_empty_families()
@@ -67,34 +68,34 @@ class Annotator(Walk):
def remove_empty_families(self) -> None:
"""Remove all families without any variable
"""
- removed_families = {}
- for family, parent in self.get_families(with_parent=True):
- if isinstance(family, self.objectspace.family) and not self._has_variable(family):
- removed_families.setdefault(parent, []).append(family)
- for parent, families in removed_families.items():
- for family in families:
- del parent.variable[family.name]
+ removed_families = []
+ for family in self.get_families():
+ if isinstance(family, self.objectspace.family) and not self._has_variable(family.path):
+ if '.' in family.path:
+ removed_families.append(family.path)
+ removed_families.reverse()
+ for family in removed_families:
+ self.objectspace.del_family(family)
def _has_variable(self,
- family: 'self.objectspace.family',
+ family: str,
) -> bool:
- if hasattr(family, 'variable'):
- for variable in family.variable.values():
- if isinstance(variable, self.objectspace.family):
- if self._has_variable(variable):
- return True
- else:
+ for variable in self.objectspace.parents[family]:
+ if variable in self.objectspace.families:
+ if self._has_variable(variable):
return True
+ else:
+ return True
return False
def family_names(self) -> None:
"""Set doc, path, ... to family
"""
for family in self.get_families():
- if not hasattr(family, 'description'):
+ if not family.description:
family.description = family.name
- family.doc = family.description
- del family.description
+# family.doc = family.description
+# del family.description
def change_modes(self):
"""change the mode of variables
@@ -130,17 +131,21 @@ class Annotator(Walk):
def _set_default_mode(self,
family: 'self.objectspace.family',
) -> None:
- if not hasattr(family, 'variable'):
+ children = self.objectspace.parents[family.path]
+ if not children:
return
if self._has_mode(family):
family_mode = family.mode
else:
family_mode = None
leader = None
- for variable in family.variable.values():
- if leader is None and hasattr(family, 'leadership') and family.leadership:
+ for variable_path in children:
+ variable = self.objectspace.paths[variable_path]
+ if variable.type == 'symlink':
+ continue
+ if leader is None and family.type == 'leadership':
leader = variable
- if isinstance(variable, self.objectspace.family):
+ if variable_path in self.objectspace.families:
# set default mode a subfamily
if family_mode and not self._has_mode(variable):
self._set_auto_mode(variable, family_mode)
@@ -154,32 +159,33 @@ class Annotator(Walk):
# here because follower can change leader mode
self._set_auto_mode(family, leader.mode)
- @staticmethod
- def _has_mode(obj) -> bool:
- return 'mode' in vars(obj) and not hasattr(obj, 'mode_auto')
+ def _has_mode(self, obj) -> bool:
+ return obj.mode and not obj.path in self.mode_auto
def _set_default_mode_variable(self,
variable: 'self.objectspace.variable',
family_mode: str,
) -> None:
- # auto_save or auto_freeze variable is set to 'basic' mode
+ # auto_save variable is set to 'basic' mode
# if its mode is not defined by the user
if not self._has_mode(variable) and \
- (variable.auto_save is True or variable.auto_freeze is True):
+ variable.auto_save is True:
variable.mode = self.objectspace.rougailconfig['modes_level'][0]
# mandatory variable without value is a basic variable
elif not self._has_mode(variable) and \
variable.mandatory is True and \
- not hasattr(variable, 'default') and \
- not hasattr(variable, 'default_multi'):
+ variable.default is None and \
+ variable.path not in self.objectspace.default_multi:
variable.mode = self.objectspace.rougailconfig['modes_level'][0]
elif family_mode and not self._has_mode(variable):
self._set_auto_mode(variable, family_mode)
- @staticmethod
- def _set_auto_mode(obj, mode: str) -> None:
+ def _set_auto_mode(self,
+ obj,
+ mode: str,
+ ) -> None:
obj.mode = mode
- obj.mode_auto = True
+ self.mode_auto.append(obj.path)
def _set_default_mode_leader(self,
leader: 'self.objectspace.variable',
@@ -188,12 +194,9 @@ class Annotator(Walk):
if follower.auto_save is True:
msg = _(f'leader/followers "{follower.name}" could not be auto_save')
raise DictConsistencyError(msg, 29, follower.xmlfiles)
- if follower.auto_freeze is True:
- msg = f'leader/followers "{follower.name}" could not be auto_freeze'
- raise DictConsistencyError(_(msg), 30, follower.xmlfiles)
if leader == follower:
# it's a leader
- if not hasattr(leader, 'mode'):
+ if not leader.mode:
self._set_auto_mode(leader, self.objectspace.rougailconfig['default_variable_mode'])
return
if self._has_mode(follower):
@@ -215,44 +218,42 @@ class Annotator(Walk):
def _change_family_mode(self,
family: 'self.objectspace.family',
) -> None:
- if hasattr(family, 'mode'):
+ if family.mode:
family_mode = family.mode
else:
family_mode = self.objectspace.rougailconfig['default_family_mode']
min_variable_mode = self.objectspace.rougailconfig['modes_level'][-1]
# change variable mode, but not if variables are not in a family
- is_leadership = hasattr(family, 'leadership') and family.leadership
- if hasattr(family, 'variable'):
- for idx, variable in enumerate(family.variable.values()):
- if isinstance(variable, self.objectspace.family):
- if not hasattr(variable, 'mode'):
+ is_leadership = family.type == 'leadership'
+ if family.path in self.objectspace.parents:
+ for idx, variable_path in enumerate(self.objectspace.parents[family.path]):
+ variable = self.objectspace.paths[variable_path]
+ if variable.type == 'symlink':
+ continue
+ if variable_path in self.objectspace.families:
+ if not variable.mode:
variable.mode = self.objectspace.rougailconfig['default_family_mode']
- #elif idx == 0 and is_leadership:
- # variable.mode = None
- # if variable.path == 'general.piwigo.users.piwigo_users':
- # print(variable.path)
- # continue
else:
self._change_variable_mode(variable, family_mode, is_leadership)
if self.modes[min_variable_mode] > self.modes[variable.mode]:
min_variable_mode = variable.mode
- if not isinstance(family, (self.objectspace.family, self.objectspace.variables)):
- # it's Variable, Service, ...
- return
- if not hasattr(family, 'mode'):
+#FIXME if not isinstance(family, (self.objectspace.family, self.objectspace.variables)):
+# # it's Variable, Service, ...
+# return
+ if not family.mode:
# set the lower variable mode to family
self._set_auto_mode(family, min_variable_mode)
- if not is_leadership and family.mode != min_variable_mode:
- msg = _(f'the family "{family.name}" is in "{family.mode}" mode but variables and '
- f'families inside have the higher modes "{min_variable_mode}"')
- raise DictConsistencyError(msg, 62, family.xmlfiles)
+#FIXME if not is_leadership and family.mode != min_variable_mode:
+#FIXME msg = _(f'the family "{family.name}" is in "{family.mode}" mode but variables and '
+#FIXME f'families inside have the higher modes "{min_variable_mode}"')
+#FIXME raise DictConsistencyError(msg, 62, family.xmlfiles)
def _change_variable_mode(self,
variable,
family_mode: str,
is_follower: bool,
) -> None:
- if hasattr(variable, 'mode'):
+ if variable.mode:
variable_mode = variable.mode
else:
variable_mode = self.objectspace.rougailconfig['default_variable_mode']
@@ -263,28 +264,21 @@ class Annotator(Walk):
f'but family has the higher family mode "{family_mode}"')
raise DictConsistencyError(msg, 61, variable.xmlfiles)
self._set_auto_mode(variable, family_mode)
- if not hasattr(variable, 'mode'):
+ if not variable.mode:
variable.mode = variable_mode
def dynamic_families(self):
"""link dynamic families to object
"""
for family in self.get_families():
- if 'dynamic' not in vars(family):
+ if family.type != 'dynamic':
continue
- family.suffixes = self.objectspace.paths.get_variable(family.dynamic,
- family.namespace,
- xmlfiles=family.xmlfiles,
- allow_variable_namespace=True,
- force_path_prefix=family.path_prefix,
- add_path_prefix=True,
- )
- del family.dynamic
- if not family.suffixes.multi:
+ family.variable = self.objectspace.paths[family.variable]
+ if not family.variable.multi:
msg = _(f'dynamic family "{family.name}" must be linked '
f'to multi variable')
raise DictConsistencyError(msg, 16, family.xmlfiles)
- for variable in family.variable.values():
+ for variable in self.objectspace.parents[family.path]:
if isinstance(variable, self.objectspace.family) and not variable.leadership:
msg = _(f'dynamic family "{family.name}" cannot contains another family')
raise DictConsistencyError(msg, 22, family.xmlfiles)
@@ -293,9 +287,7 @@ class Annotator(Walk):
"""Convert variable help
"""
for family in self.get_families():
- if not hasattr(family, 'help'):
+ if not family.help:
continue
- if not hasattr(family, 'information'):
- family.information = self.objectspace.information(family.xmlfiles)
- family.information.help = family.help
+ self.objectspace.informations.add(family.path, 'help', family.help)
del family.help
diff --git a/src/rougail/annotator/fill.py b/src/rougail/annotator/fill.py
index 46eb8e875..505457e8d 100644
--- a/src/rougail/annotator/fill.py
+++ b/src/rougail/annotator/fill.py
@@ -40,71 +40,6 @@ from jinja2 import Undefined, UndefinedError, DictLoader
from jinja2.utils import missing
-class CollectUndefined(Undefined):
- def __init__(
- self,
- hint=None,
- obj=missing,
- name=None,
- exc=UndefinedError,
- subname=None,
- ) -> None:
- self._undefined_hint = hint
- self._undefined_obj = obj
- self._undefined_name = name
- self._undefined_exception = exc
- if subname:
- full_name = subname + '.'
- else:
- full_name = ''
- full_name += self._undefined_name
- self.variables.add(full_name)
- self._undefined_full_name = full_name
-
- def __getattr__(self, name):
- return CollectUndefined(name=name, subname=self._undefined_full_name)
-
-
-def get_jinja_variable_to_param(jinja_text,
- objectspace,
- obj,
- path_prefix,
- variable_name,
- variable_path,
- ):
- CollectUndefined.variables = set()
- try:
- SandboxedEnvironment(loader=DictLoader({'tmpl': jinja_text}), undefined=CollectUndefined).get_template('tmpl').render()
- except UndefinedError as err:
- msg = _(f'error in jinja "{jinja_text}": {err}')
- raise DictConsistencyError(msg, 91, obj.xmlfiles) from err
- variables = list(CollectUndefined.variables)
- variables.sort()
- for variable in variables:
- new_param = objectspace.param(obj.xmlfiles)
- if variable in [variable_name, variable_path]:
- new_param.name = '__internal_key'
- new_param.type = 'string'
- new_param.text = variable
- else:
- new_param.name = variable
- new_param.text = variable
- try:
- set_variable_to_param(new_param,
- objectspace,
- None,
- obj.namespace,
- path_prefix,
- None,
- )
- except DictConsistencyError as err:
- if err.errno != 42:
- raise err from err
- continue
- new_param.type = 'variable'
- obj.param.append(new_param)
-
-
CALC_MULTI = ('calc_value',
'calc_list',
'get_range',
@@ -127,9 +62,9 @@ class Annotator(TargetAnnotator, ParamAnnotator):
level = 60
def __init__(self,
objectspace,
- functions,
*args,
):
+ return
self.objectspace = objectspace
self.functions = copy(functions)
self.functions.extend(self.objectspace.rougailconfig['internal_functions'])
diff --git a/src/rougail/annotator/group.py b/src/rougail/annotator/group.py
deleted file mode 100644
index e0262d060..000000000
--- a/src/rougail/annotator/group.py
+++ /dev/null
@@ -1,85 +0,0 @@
-"""Annotate group
-
-Created by:
-EOLE (http://eole.orion.education.fr)
-Copyright (C) 2005-2018
-
-Forked by:
-Cadoles (http://www.cadoles.com)
-Copyright (C) 2019-2021
-
-Silique (https://www.silique.fr)
-Copyright (C) 2022-2023
-
-distribued with GPL-2 or later license
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-"""
-from rougail.i18n import _
-from rougail.error import DictConsistencyError
-from rougail.utils import normalize_family
-from rougail.annotator.variable import Walk
-
-
-class Annotator(Walk):
- """Annotate group
- """
- level = 10
- def __init__(self,
- objectspace,
- *args,
- ):
- if not hasattr(objectspace.space, 'variables'):
- return
- self.objectspace = objectspace
- self.convert_groups()
-
- def convert_groups(self): # pylint: disable=C0111
- """convert groups
- """
- # store old leaders family name
- for family in self.get_families():
- if not isinstance(family, self.objectspace.family):
- continue
- if not family.leadership:
- continue
- if hasattr(family, 'dynamic'):
- msg = _(f'the family "{family.name}" cannot be leadership and dynamic together')
- raise DictConsistencyError(msg, 31, family.xmlfiles)
- if not hasattr(family, 'variable'):
- continue
- for idx, variable in enumerate(family.variable.values()):
- if idx == 0:
- # it's a leader
- if variable.multi is not True:
- msg = _(f'the variable "{variable.name}" in a leadership must be multi')
- raise DictConsistencyError(msg, 32, variable.xmlfiles)
- if variable.hidden:
- family.hidden = variable.hidden
- elif family.hidden:
- variable.hidden = family.hidden
- if variable.hidden:
- variable.frozen = True
- variable.force_default_on_freeze = True
- variable.hidden = None
- else:
- # it's a follower
- if family.hidden:
- variable.frozen = True
- variable.force_default_on_freeze = True
- if variable.multi is True:
- variable.multi = 'submulti'
- else:
- variable.multi = True
diff --git a/src/rougail/annotator/property.py b/src/rougail/annotator/property.py
index 5b618dcd4..3f689153e 100644
--- a/src/rougail/annotator/property.py
+++ b/src/rougail/annotator/property.py
@@ -27,9 +27,11 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
+from typing import Union
from rougail.i18n import _
from rougail.error import DictConsistencyError
from rougail.annotator.variable import Walk
+from rougail.utils import Calculation
PROPERTIES = ('hidden', 'frozen', 'force_default_on_freeze',
@@ -45,88 +47,124 @@ class Annotator(Walk):
*args
) -> None:
self.objectspace = objectspace
- services = []
- if not self.objectspace.paths.has_path_prefix() and hasattr(self.objectspace.space, 'services'):
- services.append(self.objectspace.space.services)
- elif hasattr(self.objectspace.space, 'variables'):
- for path_prefix in self.objectspace.paths.get_path_prefixes():
- if path_prefix in self.objectspace.space.variables and \
- hasattr(self.objectspace.space.variables[path_prefix], 'services'):
- services.append(self.objectspace.space.variables[path_prefix].services)
- for service in services:
- self.convert_services(service)
- if hasattr(self.objectspace.space, 'variables'):
+ self.frozen = {}
+# services = []
+# if not self.objectspace.paths.has_path_prefix() and hasattr(self.objectspace.space, 'services'):
+# services.append(self.objectspace.space.services)
+# elif hasattr(self.objectspace.space, 'variables'):
+# for path_prefix in self.objectspace.paths.get_path_prefixes():
+# if path_prefix in self.objectspace.space.variables and \
+# hasattr(self.objectspace.space.variables[path_prefix], 'services'):
+# services.append(self.objectspace.space.variables[path_prefix].services)
+ if self.objectspace.paths:
+ for family in self.get_families():
+ #if family.path != 'services' and not family.path.startswith('services.'):
+ if family.path != 'services':
+ continue
+ self.convert_services(family)
self.convert_family()
self.convert_variable()
- def convert_property(self,
- variable,
- ) -> None:
- """convert properties
- """
- # hidden variable is also frozen
- if isinstance(variable, self.objectspace.variable) and variable.hidden is True and \
- variable.name != self.objectspace.rougailconfig['auto_freeze_variable']:
- if not variable.auto_freeze and \
- not hasattr(variable, 'provider') and not hasattr(variable, 'supplier'):
- variable.frozen = True
- if not variable.auto_save and \
- not variable.auto_freeze and \
- 'force_default_on_freeze' not in vars(variable) and \
- not hasattr(variable, 'provider') and not hasattr(variable, 'supplier'):
- variable.force_default_on_freeze = True
- if not hasattr(variable, 'properties'):
- variable.properties = []
- if 'mandatory' in vars(variable) and not variable.mandatory and variable.multi:
- # a multi could not have "None" has value
- # to permit it, just add mandatory="False"
- variable.properties.append('notempty')
- for prop in PROPERTIES:
- if hasattr(variable, prop):
- if getattr(variable, prop) is True:
-# for subprop in CONVERT_PROPERTIES.get(prop, [prop]):
- variable.properties.append(prop)
- setattr(variable, prop, None)
- if hasattr(variable, 'unique') and variable.unique != 'nil':
- if variable.unique == 'False' or variable.unique is False:
- variable.properties.append('notunique')
- else:
- variable.properties.append('unique')
- if hasattr(variable, 'mode') and variable.mode:
- variable.properties.append(variable.mode)
- variable.mode = None
- if 'force_store_value' in variable.properties and \
- 'force_default_on_freeze' in variable.properties: # pragma: no cover
- # should not appened
- msg = _('cannot have auto_freeze or auto_save with the hidden '
- f'variable "{variable.name}"')
- raise DictConsistencyError(msg, 50, variable.xmlfiles)
- if not variable.properties:
- del variable.properties
-
def convert_services(self, services) -> None:
"""convert services
"""
- self.convert_property(services)
- for services_ in services.service.values():
- self.convert_property(services_)
- for service in vars(services_).values():
- if not isinstance(service, self.objectspace.family):
- continue
- self.convert_property(service)
- for family in service.family:
- self.convert_property(family)
- for variable in family.variable:
- self.convert_property(variable)
+ self._convert_property(services)
+
+
+ def set_variable_frozen(self,
+ family_path: str,
+ hidden: Union[bool, Calculation],
+ ) -> None:
+ for variable_path in self.objectspace.parents[family_path]:
+ if variable_path in self.objectspace.families:
+ self.set_variable_frozen(variable_path,
+ hidden,
+ )
+ else:
+ # peut etre deja hidden ...
+ variable = self.objectspace.paths[variable_path]
+ if (variable.hidden and variable.hidden is not True and variable.hidden != hidden) or \
+ variable_path in self.frozen:
+ raise Exception('pffff')
+ if variable.hidden is True:
+ self.frozen[variable.path] = True
+ else:
+ self.frozen[variable.path] = hidden
def convert_family(self) -> None:
"""convert families
"""
for family in self.get_families():
- self.convert_property(family)
+ if family.path == 'services' or family.path.startswith('services.'):
+ continue
+ self._convert_property(family)
+ if family.hidden:
+ self.set_variable_frozen(family.path, family.hidden)
def convert_variable(self) -> None:
"""convert variables
"""
for variable in self.get_variables():
- self.convert_property(variable)
+ if variable.path.startswith('services.'):
+ continue
+ if variable.type == 'symlink':
+ continue
+ self._convert_variable_property(variable)
+
+ def _convert_variable_property(self,
+ variable: dict,
+ ) -> None:
+ """convert properties
+ """
+ path = variable.path
+ self._convert_property(variable)
+ if variable.hidden:
+ # hidden variable is also frozen
+ self.frozen[variable.path] = variable.hidden
+ if variable.path in self.frozen:
+ frozen = self.frozen[variable.path]
+ if frozen is True:
+ value = True
+ else:
+ datas = {'type': frozen.type,
+ frozen.type: frozen.value,
+ }
+ if frozen.params:
+ datas['params'] = frozen.params
+ value = Calculation('',
+ 'frozen',
+ variable.path,
+ datas,
+ '',
+ self.objectspace,
+ frozen.path_prefix,
+ False,
+ )
+
+ self.objectspace.properties.add(path, 'frozen', value)
+ if not variable.auto_save:
+ # if auto_save, save calculated value
+ self.objectspace.properties.add(path, 'force_default_on_freeze', True)
+ if variable.mandatory and variable.multi:
+ # a multi could not have "None" has value
+ # to permit it, just add mandatory="False"
+ self.objectspace.properties.add(path, 'notempty', True)
+ if variable.unique:
+ self.objectspace.properties.add(path, 'unique', True)
+ if variable.unique is False:
+ self.objectspace.properties.add(path, 'notunique', True)
+ if variable.auto_save:
+ self.objectspace.properties.add(variable.path, 'force_store_value', True)
+
+ def _convert_property(self,
+ obj: dict,
+ ) -> None:
+ for prop in PROPERTIES:
+ if not hasattr(obj, prop):
+ continue
+ value = getattr(obj, prop)
+ if not value:
+ continue
+ self.objectspace.properties.add(obj.path, prop, value)
+ if obj.mode:
+ self.objectspace.properties.add(obj.path, obj.mode, True)
diff --git a/src/rougail/annotator/service.py b/src/rougail/annotator/service.py
index ce0829da5..8361a3e53 100644
--- a/src/rougail/annotator/service.py
+++ b/src/rougail/annotator/service.py
@@ -33,7 +33,8 @@ from typing import Tuple
from rougail.i18n import _
from rougail.utils import normalize_family
from rougail.error import DictConsistencyError
-from rougail.annotator.variable import CONVERT_OPTION
+#from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu import PermissionsOption, UsernameOption
try:
import tiramisu4 as tiramisu
except ModuleNotFoundError:
@@ -48,13 +49,6 @@ FORCE_INFORMATIONS = ['mode']
class Annotator:
"""Manage service's object
- for example::
-
-
-
-
-
-
"""
level = 20
def __init__(self,
@@ -63,238 +57,373 @@ class Annotator:
) -> None:
self.objectspace = objectspace
self.uniq_overrides = {}
- if 'network_type' not in self.objectspace.types:
- self.objectspace.types['network_type'] = self.objectspace.types['ip_type']
+ #if 'network_type' not in self.objectspace.types:
+ # self.objectspace.types['network_type'] = self.objectspace.types['ip_type']
services = []
- if not self.objectspace.paths.has_path_prefix():
+ if 1:
+ #FIXME if not self.objectspace.paths.has_path_prefix():
self.uniq_overrides[None] = []
- if hasattr(self.objectspace.space, 'services'):
- if not hasattr(self.objectspace.space.services, 'service'):
- del self.objectspace.space.services
- else:
- services.append((None, 'services', self.objectspace.space.services))
- elif hasattr(self.objectspace.space, 'variables'):
- for path_prefix in self.objectspace.paths.get_path_prefixes():
- self.uniq_overrides[path_prefix] = []
- root_path = f'{path_prefix}.services'
- if not path_prefix in self.objectspace.space.variables or \
- not hasattr(self.objectspace.space.variables[path_prefix], 'services'):
- continue
- if not hasattr(self.objectspace.space.variables[path_prefix].services, 'service'):
- del self.objectspace.space.variables[path_prefix].services
- else:
- services.append((path_prefix, root_path, self.objectspace.space.variables[path_prefix].services))
- for path_prefix, root_path, service in services:
- self.convert_services(path_prefix, root_path, service)
+ # if hasattr(self.objectspace.space, 'services'):
+ if self.objectspace.services:
+ services.append((None, 'services', self.objectspace.services))
+ #elif hasattr(self.objectspace.space, 'variables'):
+ # for path_prefix in self.objectspace.paths.get_path_prefixes():
+ # self.uniq_overrides[path_prefix] = []
+ # root_path = f'{path_prefix}.services'
+ # if not path_prefix in self.objectspace.space.variables or \
+ # not hasattr(self.objectspace.space.variables[path_prefix], 'services'):
+ # continue
+ # if not hasattr(self.objectspace.space.variables[path_prefix].services, 'service'):
+ # del self.objectspace.space.variables[path_prefix].services
+ # else:
+ # services.append((path_prefix, root_path, self.objectspace.space.variables[path_prefix].services))
+ if services:
+ self.objectspace.add_family('.',
+ 'services',
+ 'services',
+ {'doc': 'services',
+ 'hidden': True,
+ },
+ []
+ )
+ for path_prefix, root_path, service in services:
+ self.convert_services(path_prefix, root_path, service)
def convert_services(self, path_prefix, root_path, services):
"""convert services to variables
"""
- services.hidden = True
- services.name = 'services'
- services.doc = 'services'
- services.path = root_path
- for service_name, service in services.service.items():
- service.name = normalize_family(service_name)
- activate_obj = self._generate_element('boolean',
- None,
- None,
- 'activate',
- not service.disabled,
- service,
- f'{root_path}.{service.name}',
- path_prefix,
- )
- service.disabled = None
- dico = dict(vars(service))
- if 'type' not in dico:
- if service.manage:
- dico['type'] = service.type
+ for service_name, service in services.items():
+ n_service_name = normalize_family(service_name)
+ path = f'{root_path}.{n_service_name}'
+ self.objectspace.add_family(root_path,
+ path,
+ n_service_name,
+ {'doc': service_name},
+ service.xmlfiles,
+ )
+ for typ in ['ip', 'certificates', 'files']:
+ if typ == 'ip':
+ obj_typ = 'ips'
else:
- dico['type'] = 'none'
- for elttype, values in dico.items():
- if elttype == 'servicelist':
- self.objectspace.paths.list_conditions[path_prefix].setdefault('servicelist',
- {}).setdefault(
- values,
- []).append(activate_obj)
- continue
+ obj_typ = typ
+ values = getattr(self.objectspace, obj_typ)
+ if path in values:
+ obj_path = f'{path}.{typ}'
+ if obj_path not in self.objectspace.paths:
+ self.objectspace.add_family(path,
+ obj_path,
+ typ,
+ {},
+ service.xmlfiles,
+ )
+ function = getattr(self, f'convert_service_{typ}')
+ for obj in values[path]:
+ function(obj,
+ obj_path,
+ n_service_name,
+ path_prefix,
+ )
+ self._generate_element('boolean',
+ None,
+ None,
+ 'activate',
+ not service.disabled,
+ service,
+ path,
+ path_prefix,
+ )
+ for elttype, values in service:
if elttype in ERASED_ATTRIBUTES:
continue
- if not service.manage and elttype not in ALLOW_ATTRIBUT_NOT_MANAGE and (elttype != 'type' or values != 'none'):
+ if not service.manage and elttype not in ALLOW_ATTRIBUT_NOT_MANAGE and (elttype != 'type' or values is not None):
msg = _(f'unmanage service cannot have "{elttype}"')
raise DictConsistencyError(msg, 66, service.xmlfiles)
- if isinstance(values, (dict, list)):
- if elttype != 'ip':
- eltname = elttype + 's'
- else:
- eltname = elttype
- if hasattr(service, 'servicelist'):
- if isinstance(values, dict):
- for key, value in values.items():
- setattr(value, 'servicelist', service.servicelist)
- family = self._gen_family(eltname,
- f'{root_path}.{service.name}',
- service.xmlfiles,
- path_prefix,
- with_informations=False,
- )
- if isinstance(values, dict):
- values = list(values.values())
- family.family = self.make_group_from_elts(service_name,
- elttype,
- values,
- f'{root_path}.{service.name}.{eltname}',
- root_path,
- path_prefix,
- )
- setattr(service, elttype, family)
- else:
- if not hasattr(service, 'information'):
- service.information = self.objectspace.information(service.xmlfiles)
- setattr(service.information, elttype, values)
- service.path = f'{root_path}.{service.name}'
- manage = self._generate_element('boolean',
- None,
- None,
- 'manage',
- service.manage,
- service,
- f'{root_path}.{service.name}',
- path_prefix,
- )
- service.variable = [activate_obj, manage]
- service.doc = service_name
-
- def make_group_from_elts(self,
- service_name,
- elttype,
- elts,
- path,
- root_path,
- path_prefix,
- ):
- """Splits each objects into a group (and `OptionDescription`, in tiramisu terms)
- and build elements and its attributes (the `Options` in tiramisu terms)
- """
- families = []
- listname = '{}list'.format(elttype)
- for elt in elts:
- # try to launch _update_xxxx() function
- update_elt = '_update_' + elttype
- if hasattr(self, update_elt):
- getattr(self, update_elt)(elt,
- service_name,
- path_prefix,
+ if values:
+ self.objectspace.informations.add(path, elttype, values)
+ self.objectspace.add_variable(path,
+ f'{path}.manage',
+ 'manage',
+ {'type': 'boolean',
+ 'default': True,
+ },
+ service.xmlfiles,
)
- c_name, subpath = self._get_name_path(elt,
- path,
- root_path,
- path_prefix,
- )
- family = self._gen_family(c_name,
- subpath.rsplit('.', 1)[0],
- elt.xmlfiles,
- path_prefix,
+
+ def convert_service_ip(self,
+ ip: dict,
+ subpath: str,
+ service_name: str,
+ path_prefix: str,
+ ) -> None:
+ variable = self.objectspace.paths[ip.name]
+ if variable.type not in ['ip', 'network', 'network_cidr']:
+ msg = _(f'ip cannot be linked to "{variable.type}" variable "{ip.name}"')
+ raise DictConsistencyError(msg, 70, ip.xmlfiles)
+ if variable.type in ['ip', 'network_cidr'] and ip.netmask:
+ msg = _(f'ip with ip_type "{variable.type}" must not have netmask')
+ raise DictConsistencyError(msg, 59, ip.xmlfiles)
+ if variable.type == 'network' and not ip.netmask:
+ msg = _(f'ip with ip_type "{variable.type}" must have netmask')
+ raise DictConsistencyError(msg, 64, ip.xmlfiles)
+ if ip.netmask:
+ netmask = self.objectspace.paths[ip.netmask]
+ if netmask.type != 'netmask':
+ msg = _(f'netmask in ip must have type "netmask", not "{netmask.type}"')
+ raise DictConsistencyError(msg, 65, ip.xmlfiles)
+ name = normalize_family(ip.name)
+ path = f'{subpath}.{name}'
+ self.objectspace.add_family(subpath,
+ path,
+ name,
+ {'doc': ip.name},
+ ip.xmlfiles,
+ )
+ self.objectspace.add_variable(path,
+ f'{path}.name',
+ 'name',
+ {'type': 'symlink',
+ 'opt': variable,
+ },
+ ip.xmlfiles,
)
- family.variable = []
- if hasattr(elt, 'disabled'):
- disabled = elt.disabled
- else:
- disabled = False
- activate_obj = self._generate_element('boolean',
- None,
- None,
- 'activate',
- not disabled,
- elt,
- subpath,
- path_prefix,
- )
- for key in dir(elt):
- if key.startswith('_') or key.endswith('_type') or key in ERASED_ATTRIBUTES2:
- continue
- value = getattr(elt, key)
- if key in [listname, 'servicelist']:
- self.objectspace.paths.list_conditions[path_prefix].setdefault(key,
- {}).setdefault(
- value,
- []).append(activate_obj)
- continue
- if key == 'name':
- dtd_key_type = elttype + '_type'
- else:
- dtd_key_type = key + '_type'
- elt_type = getattr(elt, dtd_key_type, None)
- if elt_type:
- try:
- value = CONVERT_OPTION.get(elt_type, {}).get('func', str)(value)
- except ValueError as err:
- msg = _(f'"{value}" is not a valid "{elttype}": {err}')
- raise DictConsistencyError(msg, 93, elt.xmlfiles)
- if key not in FORCE_INFORMATIONS and elt_type:
- if elt_type == 'variable':
- elt_type = 'symlink'
- family.variable.append(self._generate_element(elt_type,
- dtd_key_type,
- elttype,
- key,
- value,
- elt,
- subpath,
- path_prefix,
- ))
- else:
- setattr(family.information, key, value)
-
- family.variable.append(activate_obj)
- families.append(family)
- return families
-
- def _get_name_path(self,
- elt,
- path: str,
- root_path: str,
- path_prefix: str,
- ) -> Tuple[str, str]:
- # create element name, if already exists, add _xx to be uniq
- if hasattr(elt, 'source') and elt.source:
- name = elt.source
- else:
- name = elt.name
- idx = 0
- while True:
- c_name = name
- if idx:
- c_name += f'_{idx}'
- subpath = '{}.{}'.format(path, normalize_family(c_name))
- try:
- self.objectspace.paths.get_family(subpath, root_path, path_prefix)
- except DictConsistencyError as err:
- if err.errno == 42:
- return c_name, subpath
- idx += 1
-
- def _gen_family(self,
- name,
- subpath,
- xmlfiles,
- path_prefix,
- with_informations=True,
- ):
- family = self.objectspace.family(xmlfiles)
- family.name = normalize_family(name)
- family.doc = name
- family.mode = None
- self.objectspace.paths.add_family('services',
- subpath,
- family,
- False,
- force_path_prefix=path_prefix,
+ if ip.netmask:
+ self.objectspace.add_variable(path,
+ f'{path}.netmask',
+ 'netmask',
+ {'type': 'symlink',
+ 'opt': self.objectspace.paths[ip.netmask],
+ },
+ ip.xmlfiles,
)
- if with_informations:
- family.information = self.objectspace.information(xmlfiles)
- return family
+ self._generate_element('boolean',
+ None,
+ None,
+ 'activate',
+ True,
+ #not service.disabled,
+ ip,
+ path,
+ path_prefix,
+ )
+
+ def convert_service_certificates(self,
+ certificate: dict,
+ subpath: str,
+ service_name: str,
+ path_prefix: str,
+ ) -> None:
+ if isinstance(certificate.name, dict):
+ variable = self.objectspace.paths[certificate.name['name']]
+ if variable.type != 'filename':
+ msg = _(f'certificate cannot be linked to "{variable.type}" variable "{ip.name}"')
+ raise Exception(msg)
+ # raise DictConsistencyError(msg, 70, ip.xmlfiles)
+ name_obj = {'type': 'symlink',
+ 'opt': variable,
+ }
+ else:
+ name = certificate.name
+ name_obj = {'default': name}
+ name = normalize_family(name)
+ path = f'{subpath}.{name}'
+ self.objectspace.add_family(subpath,
+ path,
+ name,
+ {'doc': name},
+ certificate.xmlfiles,
+ )
+ self.objectspace.add_variable(path,
+ f'{path}.name',
+ 'name',
+ name_obj,
+ certificate.xmlfiles,
+ )
+ self.objectspace.informations.add(path, 'authority', certificate.authority)
+ for typ in ['provider', 'format', 'type']:
+ value = getattr(certificate, typ)
+ if value:
+ self.objectspace.informations.add(path, typ, value)
+ if certificate.mode:
+ PermissionsOption('', '', default=certificate.mode)
+ self.objectspace.informations.add(path, 'mode', certificate.mode)
+ #
+ for typ in ['owner', 'group']:
+ value = getattr(certificate, typ)
+ if value is None:
+ continue
+ if isinstance(value, str):
+ UsernameOption('', '', default=value)
+ new_variable = {'type': 'unix_user',
+ 'default': value}
+ else:
+ new_variable = {'type': 'symlink',
+ 'opt': self.objectspace.paths[value['name']],
+ }
+ self.objectspace.add_variable(path,
+ f'{path}.{typ}',
+ typ,
+ new_variable,
+ certificate.xmlfiles,
+ )
+ #
+ if certificate.domain is None:
+ certificate.domain = self.objectspace.rougailconfig['default_certificate_domain']
+ for typ in ['server', 'domain']:
+ value = getattr(certificate, typ)
+ if value is None:
+ continue
+ value = {'type': 'symlink',
+ 'opt': self.objectspace.paths[value],
+ }
+ self.objectspace.add_variable(path,
+ f'{path}.{typ}',
+ typ,
+ value,
+ certificate.xmlfiles,
+ )
+ self._generate_element('boolean',
+ None,
+ None,
+ 'activate',
+ True,
+ #not service.disabled,
+ certificate,
+ path,
+ path_prefix,
+ )
+
+ def convert_service_files(self,
+ file: dict,
+ subpath: str,
+ service_name: str,
+ path_prefix: str,
+ ) -> None:
+ if isinstance(file.source, dict):
+ if file.source['type'] != 'variable':
+ raise Exception('pfff')
+ source_obj = {'type': 'symlink',
+ 'opt': self.objectspace.paths[file.source['name']],
+ }
+ else:
+ source_obj = {'type': 'filename',
+ 'default': file.name,
+ }
+ if not file.variable:
+ if not file.source:
+ file.source = basename(file.name)
+ elif not file.source:
+ msg = _(f'attribute "source" is mandatory for the file "{file.name}" in '
+ f'"({service_name})"')
+ raise DictConsistencyError(msg, 34, file_.xmlfiles)
+ name, path = self.get_name_path(file, subpath)
+ self.objectspace.add_family(subpath,
+ path,
+ name,
+ {'doc': name},
+ file.xmlfiles,
+ )
+ self.objectspace.add_variable(path,
+ f'{path}.name',
+ 'name',
+ {'type': 'filename',
+ 'default': file.name,
+ },
+ file.xmlfiles,
+ )
+ #
+ self.objectspace.add_variable(path,
+ f'{path}.source',
+ 'source',
+ source_obj,
+ file.xmlfiles,
+ )
+ #
+ if file.mode:
+ PermissionsOption('', '', default=file.mode)
+ self.objectspace.informations.add(path, 'mode', file.mode)
+ #
+ if file.engine:
+ self.objectspace.informations.add(path, 'engine', file.engine)
+ #
+ if file.included != 'no':
+ self.objectspace.informations.add(path, 'included', file.included)
+ #
+ for typ in ['owner', 'group']:
+ value = getattr(file, typ)
+ if value is None:
+ continue
+ if isinstance(value, str):
+ UsernameOption('', '', default=value)
+ new_variable = {'type': 'unix_user',
+ 'default': value}
+ else:
+ new_variable = {'type': 'symlink',
+ 'opt': self.objectspace.paths[value['name']],
+ }
+ self.objectspace.add_variable(path,
+ f'{path}.{typ}',
+ typ,
+ new_variable,
+ file.xmlfiles,
+ )
+ #
+ self._generate_element('boolean',
+ None,
+ None,
+ 'activate',
+ True,
+ #not service.disabled,
+ file,
+ path,
+ path_prefix,
+ )
+
+ def convert_service_overrides(self,
+ override: dict,
+ subpath: str,
+ service_name: str,
+ path_prefix: str,
+ ) -> None:
+ name, path = self.get_name_path(override, subpath)
+ self.objectspace.add_family(subpath,
+ path,
+ name,
+ {'doc': name},
+ override.xmlfiles,
+ )
+ self.objectspace.add_variable(path,
+ f'{path}.name',
+ 'name',
+ {'type': 'filename',
+ 'default': override.name,
+ },
+ override.xmlfiles,
+ )
+ #
+ if override.source:
+ self.objectspace.add_variable(path,
+ f'{path}.source',
+ 'source',
+ {'type': 'filename',
+ 'default': override.source,
+ },
+ override.xmlfiles,
+ )
+ #
+ #
+ if override.engine:
+ self.objectspace.informations.add(path, 'engine', override.engine)
+ #
+ self._generate_element('boolean',
+ None,
+ None,
+ 'activate',
+ True,
+ #not service.disabled,
+ override,
+ path,
+ path_prefix,
+ )
def _generate_element(self,
type_,
@@ -303,13 +432,13 @@ class Annotator:
key,
value,
elt,
- path,
+ subpath,
path_prefix,
): # pylint: disable=R0913
- variable = self.objectspace.variable(elt.xmlfiles)
- variable.name = normalize_family(key)
- variable.mode = None
- variable.type = type_
+ name = normalize_family(key)
+ variable_obj = {'type': type_,
+ 'xmlfiles': elt.xmlfiles
+ }
if type_ == 'symlink':
variable.opt = self.objectspace.paths.get_variable(value,
self.objectspace.rougailconfig['variable_namespace'],
@@ -325,15 +454,21 @@ class Annotator:
raise DictConsistencyError(msg, 58, elt.xmlfiles)
else:
- variable.doc = key
- variable.default = value
- variable.namespace = 'services'
- self.objectspace.paths.add_variable('services',
- path,
- variable,
- force_path_prefix=path_prefix
- )
- return variable
+ variable_obj['description'] = key
+ variable_obj['default'] = value
+ path = f'{subpath}.{name}'
+ self.objectspace.add_variable(subpath,
+ path,
+ name,
+ variable_obj,
+ elt.xmlfiles,
+ )
+# self.objectspace.paths.add_variable('services',
+# path,
+# variable,
+# force_path_prefix=path_prefix
+# )
+ return self.objectspace.paths[path]
def _update_override(self,
override,
@@ -363,37 +498,6 @@ class Annotator:
f'"({service_name})"')
raise DictConsistencyError(msg, 34, file_.xmlfiles)
- def _update_ip(self,
- ip,
- service_name,
- path_prefix,
- ) -> None:
- variable = self.objectspace.paths.get_variable(ip.name,
- ip.namespace,
- xmlfiles=ip.xmlfiles,
- force_path_prefix=path_prefix,
- add_path_prefix=True,
- )
- if variable.type not in ['ip', 'network', 'network_cidr']:
- msg = _(f'ip cannot be linked to "{variable.type}" variable "{ip.name}"')
- raise DictConsistencyError(msg, 70, ip.xmlfiles)
- if variable.type in ['ip', 'network_cidr'] and hasattr(ip, 'netmask'):
- msg = _(f'ip with ip_type "{variable.type}" must not have netmask')
- raise DictConsistencyError(msg, 59, ip.xmlfiles)
- if variable.type == 'network' and not hasattr(ip, 'netmask'):
- msg = _(f'ip with ip_type "{variable.type}" must have netmask')
- raise DictConsistencyError(msg, 64, ip.xmlfiles)
- if hasattr(ip, 'netmask'):
- netmask = self.objectspace.paths.get_variable(ip.netmask,
- ip.namespace,
- xmlfiles=ip.xmlfiles,
- force_path_prefix=path_prefix,
- add_path_prefix=True,
- )
- if netmask.type != 'netmask':
- msg = _(f'netmask in ip must have type "netmask", not "{netmask.type}"')
- raise DictConsistencyError(msg, 65, ip.xmlfiles)
-
def _update_certificate(self,
certificate,
certificate_name,
@@ -418,3 +522,25 @@ class Annotator:
if variable.type != 'domainname':
msg = _(f'the certificate "{certificate.name}" has an attribute "domain" linked with a "{variable.type}" variable ("{certificate.domain}"), but must be a "domainename" variable')
raise DictConsistencyError(msg, 94, certificate.xmlfiles)
+
+ def get_name_path(self,
+ elt,
+ subpath: str,
+ ) -> Tuple[str, str]:
+ # create element name, if already exists, add _xx to be uniq
+ if hasattr(elt, 'source') and elt.source:
+ name = elt.source
+ if isinstance(name, dict):
+ name = name['name']
+ else:
+ name = elt.name
+ name = normalize_family(name)
+ idx = 0
+ while True:
+ c_name = name
+ if idx:
+ c_name += f'_{idx}'
+ path = f'{subpath}.{c_name}'
+ if path not in self.objectspace.families:
+ return c_name, path
+ idx += 1
diff --git a/src/rougail/annotator/value.py b/src/rougail/annotator/value.py
index ecc342d2a..7faad9c81 100644
--- a/src/rougail/annotator/value.py
+++ b/src/rougail/annotator/value.py
@@ -31,6 +31,8 @@ from rougail.annotator.variable import Walk
from rougail.i18n import _
from rougail.error import DictConsistencyError
+from rougail.utils import Calculation
+
class Annotator(Walk): # pylint: disable=R0903
"""Annotate value
@@ -40,7 +42,7 @@ class Annotator(Walk): # pylint: disable=R0903
objectspace,
*args,
) -> None:
- if not hasattr(objectspace.space, 'variables'):
+ if not objectspace.paths:
return
self.objectspace = objectspace
self.convert_value()
@@ -50,52 +52,56 @@ class Annotator(Walk): # pylint: disable=R0903
"""convert value
"""
for variable in self.get_variables():
+ if variable.type == 'symlink':
+ continue
self._convert_value(variable)
def _convert_value(self,
- variable,
+ variable: dict,
) -> None:
+ multi = self.objectspace.multis.get(variable.path, False)
# a boolean must have value, the default value is "True"
- if not hasattr(variable, 'value') and variable.type == 'boolean':
- new_value = self.objectspace.value(variable.xmlfiles)
- new_value.name = True
- new_value.type = 'boolean'
- variable.value = [new_value]
- # if the variable is mandatory and doesn't have any value
- # then the variable's mode is set to 'basic'
- # variable with default value is mandatory
- if hasattr(variable, 'value') and variable.value:
- has_value = True
- for value in variable.value:
- if value.type == 'calculation' or value.type == 'nil':
- has_value = False
- break
- if has_value and 'mandatory' not in vars(variable):
- # if has value without any calculation
- variable.mandatory = True
- if not hasattr(variable, 'value'):
+ if variable.type == 'boolean' and \
+ multi is False and \
+ variable.default is None:
+ variable.default = True
+
+ if variable.default is None:
return
- if variable.value[0].type == 'calculation':
- variable.default = variable.value[0]
- elif variable.multi:
- if self.objectspace.paths.is_follower(variable):
- if variable.multi != 'submulti' and len(variable.value) != 1:
+ has_value = False
+ if isinstance(variable.default, Calculation):
+ pass
+# variable.default = variable.default.to_function(self.functions)
+ elif isinstance(variable.default, list):
+ if not multi:
+ raise Exception('pfff')
+ if variable.path in self.objectspace.followers:
+ if multi != 'submulti' and len(variable.default) != 1:
msg = _(f'the follower "{variable.name}" without multi attribute can only have one value')
raise DictConsistencyError(msg, 87, variable.xmlfiles)
- else:
- variable.default = [value.name for value in variable.value]
- if not self.objectspace.paths.is_leader(variable):
- if variable.multi == 'submulti':
- variable.default_multi = [value.name for value in variable.value]
+# else:
+# variable.default = [value.name for value in variable.default]
+ if variable.path not in self.objectspace.leaders:
+ if multi == 'submulti':
+ self.objectspace.default_multi[variable.path] = variable.default #[value.name for value in variable.value]
+ variable.default = None
else:
- variable.default_multi = variable.value[0].name
+ self.objectspace.default_multi[variable.path] = variable.default[0] #.name
+ has_value = True
+ elif variable.multi:
+ #msg = _(f'the none multi variable "{variable.name}" cannot have '
+ # 'more than one value')
+ #raise DictConsistencyError(msg, 68, variable.xmlfiles)
+ raise Exception('pfff')
else:
- if len(variable.value) > 1:
- msg = _(f'the none multi variable "{variable.name}" cannot have '
- 'more than one value')
- raise DictConsistencyError(msg, 68, variable.xmlfiles)
- variable.default = variable.value[0].name
- del variable.value
+ if variable.path in self.objectspace.followers:
+ self.objectspace.default_multi[variable.path] = variable.default
+ variable.default = None
+ has_value = True
+ # variable with default value is mandatory
+ if has_value and variable.mandatory is None:
+ # if has value without any calculation
+ variable.mandatory = True
def add_choice_nil(self) -> None:
"""A variable with type "Choice" that is not mandatory must has "nil" value
@@ -104,11 +110,11 @@ class Annotator(Walk): # pylint: disable=R0903
if variable.type != 'choice':
continue
is_none = False
- for choice in variable.choice:
- if choice.type == 'nil':
+ if isinstance(variable.choices, Calculation):
+ continue
+ for choice in variable.choices:
+ if choice is None:
is_none = True
+ break
if not variable.mandatory and not is_none:
- choice = self.objectspace.choice(variable.xmlfiles)
- choice.name = None
- choice.type = 'nil'
- variable.choice.append(choice)
+ variable.choices.append(None)
diff --git a/src/rougail/annotator/variable.py b/src/rougail/annotator/variable.py
index d686c1cb5..590d26310 100644
--- a/src/rougail/annotator/variable.py
+++ b/src/rougail/annotator/variable.py
@@ -30,26 +30,26 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
from rougail.i18n import _
from rougail.error import DictConsistencyError
-from rougail.objspace import convert_boolean, get_variables
+from rougail.objspace import convert_boolean #, get_variables
+from rougail.utils import Calculation
-CONVERT_OPTION = {'number': dict(opttype="IntOption", func=int),
+CONVERT_OPTION = {'string': dict(opttype="StrOption"),
+ 'number': dict(opttype="IntOption", func=int),
'float': dict(opttype="FloatOption", func=float),
- 'choice': dict(opttype="ChoiceOption"),
- 'string': dict(opttype="StrOption"),
- 'password': dict(opttype="PasswordOption"),
+ 'boolean': dict(opttype="BoolOption", func=convert_boolean),
'secret': dict(opttype="PasswordOption"),
'mail': dict(opttype="EmailOption"),
- 'boolean': dict(opttype="BoolOption", func=convert_boolean),
- 'symlink': dict(opttype="SymLinkOption"),
'filename': dict(opttype="FilenameOption"),
'date': dict(opttype="DateOption"),
'unix_user': dict(opttype="UsernameOption"),
'ip': dict(opttype="IPOption", initkwargs={'allow_reserved': True}),
+ 'cidr': dict(opttype="IPOption", initkwargs={'cidr': True}),
'local_ip': dict(opttype="IPOption", initkwargs={'private_only': True,
'warnings_only': True}),
'netmask': dict(opttype="NetmaskOption"),
'network': dict(opttype="NetworkOption"),
+ 'network_cidr': dict(opttype="NetworkOption", initkwargs={'cidr': True}),
'broadcast': dict(opttype="BroadcastOption"),
'netbios': dict(opttype="DomainnameOption", initkwargs={'type': 'netbios',
'warnings_only': True}),
@@ -61,9 +61,10 @@ CONVERT_OPTION = {'number': dict(opttype="IntOption", func=int),
'allow_without_dot': True}),
'port': dict(opttype="PortOption", initkwargs={'allow_private': True, 'allow_protocol': True}),
'mac': dict(opttype="MACOption"),
- 'cidr': dict(opttype="IPOption", initkwargs={'cidr': True}),
- 'network_cidr': dict(opttype="NetworkOption", initkwargs={'cidr': True}),
'unix_permissions': dict(opttype="PermissionsOption", initkwargs={'warnings_only': True}, func=int),
+ 'choice': dict(opttype="ChoiceOption"),
+ #
+ 'symlink': dict(opttype="SymLinkOption"),
}
@@ -75,56 +76,58 @@ class Walk:
def get_variables(self):
"""Iter all variables from the objectspace
"""
- yield from get_variables(self.objectspace)
+ for path in self.objectspace.variables:
+ yield self.objectspace.paths[path]
+# yield from get_variables(self.objectspace)
- def get_families(self,
- with_parent: bool=False,
- ):
+ def get_families(self):
"""Iter all families from the objectspace
"""
- for family in self.objectspace.space.variables.values():
- yield from self._get_families(family, None, with_parent)
-
- def _get_families(self,
- family: 'self.objectspace.family',
- old_family: 'self.objectspace.family',
- with_parent: bool,
- ):
- if with_parent:
- yield family, old_family,
- if hasattr(family, 'variable'):
- if not with_parent:
- yield family
- for fam in family.variable.values():
- if isinstance(fam, self.objectspace.family):
- yield from self._get_families(fam, family, with_parent)
- if hasattr(family, 'variables'):
- for fam in family.variables.values():
- yield from self._get_families(fam, family, with_parent)
-
- def get_constraints(self,
- create: bool=False,
- path_prefix: str=None,
- ):
- if not self.objectspace.paths.has_path_prefix():
- if hasattr(self.objectspace.space, 'constraints'):
- yield None, self.objectspace.space.constraints
- elif create:
- self.objectspace.space.constraints = self.objectspace.constraints(None)
- yield None, self.objectspace.space.constraints
- else:
- if path_prefix:
- path_prefixes = [path_prefix]
- else:
- path_prefixes = self.objectspace.paths.get_path_prefixes()
- for path_prefix in path_prefixes:
- if hasattr(self.objectspace.space, 'variables') and \
- path_prefix in self.objectspace.space.variables and \
- hasattr(self.objectspace.space.variables[path_prefix], 'constraints'):
- yield path_prefix, self.objectspace.space.variables[path_prefix].constraints
- elif create:
- self.objectspace.space.variables[path_prefix].constraints = self.objectspace.constraints(None)
- yield path_prefix, self.objectspace.space.variables[path_prefix].constraints
+ for path in self.objectspace.families:
+ yield self.objectspace.paths[path]
+# for family in self.objectspace.space.variables.values():
+# yield from self._get_families(family, None, with_parent)
+#
+# def _get_families(self,
+# family: 'self.objectspace.family',
+# old_family: 'self.objectspace.family',
+# with_parent: bool,
+# ):
+# if with_parent:
+# yield family, old_family,
+# if hasattr(family, 'variable'):
+# if not with_parent:
+# yield family
+# for fam in family.variable.values():
+# if isinstance(fam, self.objectspace.family):
+# yield from self._get_families(fam, family, with_parent)
+# if hasattr(family, 'variables'):
+# for fam in family.variables.values():
+# yield from self._get_families(fam, family, with_parent)
+#
+# def get_constraints(self,
+# create: bool=False,
+# path_prefix: str=None,
+# ):
+# if not self.objectspace.paths.has_path_prefix():
+# if hasattr(self.objectspace.space, 'constraints'):
+# yield None, self.objectspace.space.constraints
+# elif create:
+# self.objectspace.space.constraints = self.objectspace.constraints(None)
+# yield None, self.objectspace.space.constraints
+# else:
+# if path_prefix:
+# path_prefixes = [path_prefix]
+# else:
+# path_prefixes = self.objectspace.paths.get_path_prefixes()
+# for path_prefix in path_prefixes:
+# if hasattr(self.objectspace.space, 'variables') and \
+# path_prefix in self.objectspace.space.variables and \
+# hasattr(self.objectspace.space.variables[path_prefix], 'constraints'):
+# yield path_prefix, self.objectspace.space.variables[path_prefix].constraints
+# elif create:
+# self.objectspace.space.variables[path_prefix].constraints = self.objectspace.constraints(None)
+# yield path_prefix, self.objectspace.space.variables[path_prefix].constraints
class Annotator(Walk): # pylint: disable=R0903
@@ -135,7 +138,7 @@ class Annotator(Walk): # pylint: disable=R0903
objectspace,
*args,
):
- if not hasattr(objectspace.space, 'variables'):
+ if not objectspace.paths:
return
self.objectspace = objectspace
self.forbidden_name = ['services', self.objectspace.rougailconfig['variable_namespace']]
@@ -149,109 +152,81 @@ class Annotator(Walk): # pylint: disable=R0903
"""convert variable
"""
for variable in self.get_variables():
+ if variable.type == 'symlink':
+ continue
self._convert_variable(variable)
def _convert_variable(self,
- variable,
+ variable: dict,
) -> None:
- if variable.namespace == self.objectspace.rougailconfig['variable_namespace'] and \
- variable.name in self.forbidden_name:
- msg = _(f'the name of the variable "{variable.name}" cannot be the same as the name'
- ' of a namespace')
- raise DictConsistencyError(msg, 54, variable.xmlfiles)
- if variable.type != 'symlink' and not hasattr(variable, 'description'):
+ # variable without description: description is the name
+ if not variable.description:
variable.description = variable.name
- if hasattr(variable, 'value'):
- for idx, value in enumerate(variable.value):
- if not hasattr(value, 'name') and not hasattr(value, 'type'):
- msg = f'variable "{variable.name}" has a value without text, if you want the value None, set value type to nil'
- raise DictConsistencyError(msg, 95, value.xmlfiles)
- if not hasattr(value, 'type'):
- value.type = variable.type
- if hasattr(value, 'name'):
- try:
- value.name = CONVERT_OPTION.get(value.type, {}).get('func', str)(value.name)
- except Exception as err:
- msg = _(f'the variable "{variable.name}" has an incorrect value "{value.name}" with "{variable.type}" type')
- raise DictConsistencyError(msg, 88, variable.xmlfiles)
- else:
- value.name = None
- if not variable.value:
- del variable.value
- if hasattr(variable, 'choice'):
- if variable.type != 'choice':
- msg = _(f'choice for the variable "{variable.name}" not allowed with "{variable.type}" type')
- raise DictConsistencyError(msg, 3, variable.xmlfiles)
- values = []
- choice_type = None
- for choice in variable.choice:
- if choice_type == 'variable':
- msg = _(f'only one "variable" choice is allowed '
- f'the variable "{variable.name}"')
- raise DictConsistencyError(msg, 5, choice.xmlfiles)
- if choice.type == 'nil':
- choice.name = None
- elif choice.type == 'space':
- choice.name = ' '
- elif choice.type == 'variable':
- choice.name = self.objectspace.paths.get_variable(choice.name,
- variable.namespace,
- force_path_prefix=variable.path_prefix,
- )
- if not choice.name.multi:
- msg = _(f'only multi "variable" is allowed for a choice '
- f'of variable "{variable.name}"')
- raise DictConsistencyError(msg, 6, choice.xmlfiles)
- else:
- if not hasattr(choice, 'name'):
- msg = _(f'choice for variable "{variable.name}" must have a value')
- raise DictConsistencyError(msg, 14, choice.xmlfiles)
- choice.name = CONVERT_OPTION.get(choice.type, {}).get('func', str)(choice.name)
- if choice_type is None:
- choice_type = choice.type
- values.append(choice.name)
- if choice_type not in ['function', 'variable'] and hasattr(variable, 'value'):
- for value in variable.value:
- if value.name not in values:
- msg = _(f'value "{value.name}" of variable "{variable.name}" is not in list '
- f'of all expected values ({values})')
- raise DictConsistencyError(msg, 15, value.xmlfiles)
- ref_choice = variable.choice[0]
- self.objectspace.paths.set_valid_enums(variable.path,
- values,
- variable.path_prefix,
- )
- elif variable.type == 'choice':
- msg = _(f'choice is mandatory for the variable "{variable.name}" with choice type')
- raise DictConsistencyError(msg, 4, variable.xmlfiles)
- variable.doc = variable.description
- del variable.description
+ if variable.path in self.objectspace.followers:
+ if not variable.multi:
+ self.objectspace.multis[variable.path] = True
+ else:
+ self.objectspace.multis[variable.path] = 'submulti'
+ elif variable.multi:
+ self.objectspace.multis[variable.path] = True
+ if variable.path in self.objectspace.leaders:
+ if not self.objectspace.multis.get(variable.path, False):
+ msg = _(f'the variable "{variable.name}" in a leadership must be multi')
+ raise DictConsistencyError(msg, 32, variable.xmlfiles)
+ family = self.objectspace.paths[variable.path.rsplit('.', 1)[0]]
+ if variable.hidden:
+ family.hidden = variable.hidden
+ elif family.hidden:
+ variable.hidden = family.hidden
+ variable.hidden = None
+
+ #for idx, value in enumerate(variable.default):
+ # if not hasattr(value, 'name') and not hasattr(value, 'type'):
+ # msg = f'variable "{variable.name}" has a value without text, if you want the value None, set value type to nil'
+ # raise DictConsistencyError(msg, 95, value.xmlfiles)
+ # if not hasattr(value, 'type'):
+ # value.type = variable.type
+ # if hasattr(value, 'name'):
+ # try:
+ # value.name = CONVERT_OPTION.get(value.type, {}).get('func', str)(value.name)
+ # except Exception as err:
+ # msg = _(f'the variable "{variable.name}" has an incorrect value "{value.name}" with "{variable.type}" type')
+ # raise DictConsistencyError(msg, 88, variable.xmlfiles)
+ # else:
+ # value.name = None
+ #if not variable.value:
+ # del variable.value
+# if variable.type == 'choice':
+# choice_type = None
+# if isinstance(variable.choices, Calculation):
+# self.objectspace.choices.add(variable.path,
+# variable.choices.to_function(self.functions),
+# )
+# else:
+# for choice in variable.choices:
+# self.objectspace.choices.append(variable.path,
+# variable.choices,
+# )
+# elif variable.type == 'choice':
+# msg = _(f'choice is mandatory for the variable "{variable.name}" with choice type')
+# raise DictConsistencyError(msg, 4, variable.xmlfiles)
+# variable.doc = variable.description
+# del variable.description
def convert_test(self):
"""Convert variable tests value
"""
for variable in self.get_variables():
- if not hasattr(variable, 'test') or not variable.test:
+ if variable.test is None:
# with we want remove test, we set "" has test value
continue
- new_values = []
- for value in variable.test.split('|'):
- if value == '':
- value = None
- else:
- value = CONVERT_OPTION.get(variable.type, {}).get('func', str)(value)
- new_values.append(value)
- if not hasattr(variable, 'information'):
- variable.information = self.objectspace.information(variable.xmlfiles)
- variable.information.test = tuple(new_values)
+ self.objectspace.informations.add(variable.path, 'test', tuple(variable.test))
def convert_help(self):
"""Convert variable help
"""
for variable in self.get_variables():
- if not hasattr(variable, 'help'):
+ if not hasattr(variable, 'help') or not variable.help:
continue
- if not hasattr(variable, 'information'):
- variable.information = self.objectspace.information(variable.xmlfiles)
- variable.information.help = variable.help
+ self.objectspace.informations.add(variable.path, 'help', variable.help)
del variable.help
diff --git a/src/rougail/config.py b/src/rougail/config.py
index caa763501..56836db2a 100644
--- a/src/rougail/config.py
+++ b/src/rougail/config.py
@@ -37,6 +37,7 @@ DTDDIR = join(dirname(abspath(__file__)), 'data')
RougailConfig = {'dictionaries_dir': [join(ROUGAILROOT, 'dictionaries')],
'extra_dictionaries': {},
+ 'services_dir': [join(ROUGAILROOT, 'services')],
'patches_dir': join(ROUGAILROOT, 'patches'),
'templates_dir': join(ROUGAILROOT, 'templates'),
'destinations_dir': join(ROUGAILROOT, 'destinations'),
@@ -62,16 +63,17 @@ RougailConfig = {'dictionaries_dir': [join(ROUGAILROOT, 'dictionaries')],
'modes_level': ['basic', 'normal', 'expert'],
'default_family_mode': 'basic',
'default_variable_mode': 'normal',
- 'default_files_engine': 'cheetah',
+ 'default_files_engine': 'jinja',
'default_files_mode': 644,
'default_files_owner': 'root',
'default_files_group': 'root',
'default_files_included': 'no',
- 'default_overrides_engine': 'cheetah',
+ 'default_overrides_engine': 'jinja',
'default_service_names_engine': 'none',
- 'default_certificate_domain': 'server_name',
+ 'default_certificate_domain': 'rougail.server_name',
'base_option_name': 'baseoption',
'export_with_import': True,
'force_convert_dyn_option_description': False,
'suffix': '',
+ 'tiramisu_cache': None,
}
diff --git a/src/rougail/convert.py b/src/rougail/convert.py
index d98d05cb7..9f1765eac 100644
--- a/src/rougail/convert.py
+++ b/src/rougail/convert.py
@@ -44,114 +44,1137 @@ The visit/annotation stage is a complex step that corresponds to the Rougail
procedures.
"""
-from typing import List
-from tiramisu import Config
+#from typing import List
+#from tiramisu import Config
+#
+#from .i18n import _
+#from .config import RougailConfig
+#from .objspace import RougailObjSpace
+#from .reflector import Reflector
+#from .tiramisureflector import TiramisuReflector
+#from .annotator import SpaceAnnotator
+#from .error import DictConsistencyError
+##from .providersupplier import provider_supplier
+#from .utils import normalize_family
+
+
+#class RougailConvert:
+# """Rougail object
+# """
+# def __init__(self,
+# rougailconfig: RougailConfig=None,
+# just_doc: bool=False,
+# ) -> None:
+# if rougailconfig is None:
+# rougailconfig = RougailConfig
+# self.rougailconfig = rougailconfig
+# xmlreflector = Reflector(self.rougailconfig)
+# self.rougailobjspace = RougailObjSpace(xmlreflector,
+# self.rougailconfig,
+# just_doc,
+# )
+# self.internal_functions = self.rougailconfig['internal_functions']
+# self.dictionaries = False
+# self.annotator = False
+# self.reflector = None
+#
+# def load_dictionaries(self,
+# path_prefix: str=None,
+# ) -> None:
+# self.rougailobjspace.paths.set_path_prefix(normalize_family(path_prefix))
+# self._load_dictionaries(self.rougailobjspace.xmlreflector,
+# self.rougailconfig['variable_namespace'],
+# self.rougailconfig['dictionaries_dir'],
+# path_prefix,
+# self.rougailconfig['variable_namespace_description'],
+# )
+# for namespace, extra_dir in self.rougailconfig['extra_dictionaries'].items():
+# if namespace in ['services', self.rougailconfig['variable_namespace']]:
+# msg = _(f'Namespace name "{namespace}" is not allowed')
+# raise DictConsistencyError(msg, 21, None)
+# self._load_dictionaries(self.rougailobjspace.xmlreflector,
+# namespace,
+# extra_dir,
+# path_prefix,
+# )
+## if hasattr(self.rougailobjspace.space, 'variables'):
+## provider_supplier(self.rougailobjspace,
+## path_prefix,
+## )
+# self.dictionaries = True
+#
+# def _load_dictionaries(self,
+# xmlreflector: Reflector,
+# namespace: str,
+# xmlfolders: List[str],
+# path_prefix: str,
+# namespace_description: str=None,
+# ) -> List[str]:
+# for xmlfile, document in xmlreflector.load_dictionaries_from_folders(xmlfolders, self.rougailobjspace.just_doc):
+# self.rougailobjspace.xml_parse_document(xmlfile,
+# document,
+# namespace,
+# namespace_description,
+# path_prefix,
+# )
+#
+# def annotate(self):
+# if self.annotator:
+# raise DictConsistencyError(_('Cannot execute annotate multiple time'), 85, None)
+# SpaceAnnotator(self.rougailobjspace)
+# self.annotator = True
+#
+# def reflexion(self,
+# exclude_imports: list=[],
+# ):
+# if not self.dictionaries:
+# self.load_dictionaries()
+# if not self.annotator:
+# self.annotate()
+# if self.reflector:
+# raise DictConsistencyError(_('Cannot execute reflexion multiple time'), 86, None)
+# functions_file = self.rougailconfig['functions_file']
+# if not isinstance(functions_file, list):
+# functions_file = [functions_file]
+# functions_file = [func for func in functions_file if func not in exclude_imports]
+# self.reflector = TiramisuReflector(self.rougailobjspace,
+# functions_file,
+# self.internal_functions,
+# self.rougailconfig,
+# )
+#
+# def save(self,
+# filename: str,
+# ) -> str:
+# """Return tiramisu object declaration as a string
+# """
+# if self.reflector is None:
+# self.reflexion()
+# output = self.reflector.get_text() + '\n'
+# if filename:
+# with open(filename, 'w') as tiramisu:
+# tiramisu.write(output)
+# return output
+
+
+
+
+
+
+
+
+
+
+from typing import Optional, Union, get_type_hints, Any, Literal, List, Dict
+from pydantic import BaseModel, StrictBool, StrictInt, StrictFloat, StrictStr
+from pydantic.error_wrappers import ValidationError
+
+from yaml import safe_load
+from os import listdir
+from os.path import join, isdir
-from .i18n import _
-from .config import RougailConfig
-from .objspace import RougailObjSpace
-from .reflector import Reflector
-from .tiramisureflector import TiramisuReflector
from .annotator import SpaceAnnotator
-from .error import DictConsistencyError
-from .providersupplier import provider_supplier
-from .utils import normalize_family
+from .tiramisureflector import TiramisuReflector
+from .utils import normalize_family, Calculation, get_realpath
-class RougailConvert:
- """Rougail object
- """
- def __init__(self,
- rougailconfig: RougailConfig=None,
- just_doc: bool=False,
- ) -> None:
- if rougailconfig is None:
- rougailconfig = RougailConfig
- self.rougailconfig = rougailconfig
- xmlreflector = Reflector(self.rougailconfig)
- self.rougailobjspace = RougailObjSpace(xmlreflector,
- self.rougailconfig,
- just_doc,
+BASETYPE = Union[StrictBool, StrictInt, StrictFloat, StrictStr, None]
+BASETYPE_CALC = Union[StrictBool, StrictInt, StrictFloat, StrictStr, None, Calculation]
+
+
+#for typ, values in _VALIDATORS:
+# if typ in [bool, int, float, str]:
+# values.pop(0)
+
+
+class Family(BaseModel):
+ name: str
+ description: Optional[str]=None
+ type: Literal['family', 'leadership', 'dynamic']='family'
+ help: Optional[str]=None
+ mode: Optional[str]=None
+ hidden: Union[bool, Calculation]=False
+ disabled: Union[bool, Calculation]=False
+ xmlfiles: List[str]=[]
+ path: str
+ class Config:
+ arbitrary_types_allowed = True
+
+
+class Dynamic(Family):
+ variable: str
+
+
+class Variable(BaseModel):
+ name: str
+ type: Literal['number', 'float', 'string', 'password', 'secret', 'mail', 'boolean', 'filename', 'date', 'unix_user', 'ip', 'local_ip', 'netmask', 'network', 'broadcast', 'netbios', 'domainname', 'hostname', 'web_address', 'port', 'mac', 'cidr', 'network_cidr', 'choice', 'unix_permissions']='string'
+ description: Optional[str]=None
+ default: Union[BASETYPE_CALC, List[BASETYPE_CALC]]=None
+ params: Optional[dict]=None
+ validators: List[BASETYPE_CALC]=None
+ multi: bool=False
+ unique: Optional[bool]=None
+ help: Optional[str]=None
+ hidden: Union[bool, Calculation]=False
+ disabled: Union[bool, Calculation]=False
+ mandatory: Union[None, bool, Calculation]=None
+ auto_save: bool=False
+ mode: Optional[str]=None
+ #provider: Optional[str]=None
+ #supplier: Optional[str]=None
+ test: Optional[list]=None
+ xmlfiles: List[str]=[]
+ path: str
+ class Config:
+ arbitrary_types_allowed = True
+
+
+class Choice(Variable):
+ choices: Union[List[BASETYPE], Calculation]=None
+
+
+class SymLink(BaseModel):
+ name: str
+ type: str='symlink'
+ opt: Variable
+ xmlfiles: List[str]=[]
+ path: str
+
+
+class Service(BaseModel):
+ name: str
+ manage: bool=True
+ type: Literal['service', 'mount', 'swap', 'timer', 'target']='service'
+ disabled: Union[bool, Calculation]=False
+ engine: Optional[str]=None
+ target: Optional[str]=None
+ undisable: bool=False
+ xmlfiles: List[str]=[]
+ class Config:
+ arbitrary_types_allowed = True
+
+
+class IP(BaseModel):
+ name: str
+ netmask: Optional[str]=None
+ disabled: Union[bool, Calculation]=False
+ xmlfiles: List[str]=[]
+ class Config:
+ arbitrary_types_allowed = True
+
+
+class Certificate(BaseModel):
+ name: str
+ authority: str
+ mode: Optional[int]=None
+ owner: Union[None, str, Dict[str, str]]=None
+ group: Union[None, str, Dict[str, str]]=None
+ server: Union[None, str, Dict[str, str]]=None
+ domain: Union[None, str, Dict[str, str]]=None
+ provider: Optional[str]=None
+ format: Literal['cert_key', 'pem']='cert_key'
+ type: Literal['client', 'server']='client'
+ disabled: Union[bool, Calculation]=False
+ xmlfiles: List[str]=[]
+ class Config:
+ arbitrary_types_allowed = True
+
+
+class File(BaseModel):
+ name: str
+ type: Literal['string', 'variable']='string'
+ mode: Optional[int]=None
+ owner: Union[None, str, Dict[str, str]]=None
+ group: Union[None, str, Dict[str, str]]=None
+ source: Union[None, str, Dict[str, str]]=None
+ engine: Optional[str]=None
+ variable: Optional[str]=None
+ included: Literal['no', 'name', 'content']='no'
+ disabled: Union[bool, Calculation]=False
+ xmlfiles: List[str]=[]
+ class Config:
+ arbitrary_types_allowed = True
+
+
+class Override(BaseModel):
+ name: str
+ type: Literal['string', 'variable']='string'
+ source: Optional[str]=None
+ engine: Optional[str]=None
+ xmlfiles: List[str]=[]
+
+
+class Property:
+ def __init__(self) -> None:
+ self._properties = {}
+
+ def add(self,
+ path: str,
+ property_: str,
+ value: Union[True, Calculation],
+ ) -> None:
+ self._properties.setdefault(path, {})[property_] = value
+
+ def __getitem__(self,
+ path: str,
+ ) -> list:
+ return self._properties.get(path, {})
+
+ def __contains__(self,
+ path: str,
+ ) -> bool:
+ return path in self._properties
+
+
+#class Appendable:
+# def __init__(self) -> None:
+# self._data = {}
+#
+# def add(self,
+# path: str,
+# data: str,
+# ) -> None:
+# if path in self._data:
+# raise Exception('hu?')
+# self._data[path] = data
+#
+# def append(self,
+# path: str,
+# data: str,
+# ) -> None:
+# if path not in self._data:
+# self._data[path] = []
+# self._data[path].append(data)
+#
+# def __getitem__(self,
+# path: str,
+# ) -> list:
+# return self._data.get(path, [])
+#
+# def __contains__(self,
+# path: str,
+# ) -> bool:
+# return path in self._data
+
+
+class Paths:
+ def __init__(self) -> None:
+ self._data = {}
+ self._dynamics = []
+ self.path_prefix = None
+
+ def has_value(self) -> bool:
+ return self._data != {}
+
+ def add(self,
+ path: str,
+ data: Any,
+ is_dynamic: bool,
+ force: bool=False,
+ ) -> None:
+ if not force and path in self._data:
+ raise Exception('pfff')
+ self._data[path] = data
+ if not force and is_dynamic:
+ self._dynamics.append(path)
+
+ def get_with_dynamic(self,
+ path: str,
+ ) -> Any:
+ suffix = None
+ dynamic_path = None
+ if not path in self._data:
+ for dynamic in self._dynamics:
+ if path.startswith(dynamic):
+ subpaths = path[len(dynamic):].split('.')
+ if len(subpaths) > 1 and subpaths[0]:
+ dynamic_path = dynamic
+ suffix = subpaths[0]
+ len_suffix = len(suffix)
+ for subpath in subpaths[1:]:
+ if not subpath.endswith(suffix):
+ suffix = None
+ break
+ dynamic_path += '.' + subpath[:-len_suffix]
+ if dynamic_path not in self._dynamics:
+ suffix = None
+ break
+ if suffix:
+ break
+ if suffix is None and not path in self._data:
+ return None, None
+ if suffix:
+ path = dynamic_path
+ return self._data[path], suffix
+
+ def __getitem__(self,
+ path: str,
+ ) -> dict:
+ if not path in self._data:
+ raise Exception(f'cannot find variable or family {path}')
+ return self._data[path]
+
+ def __contains__(self,
+ path: str,
+ ) -> bool:
+ return path in self._data
+
+ def __delitem__(self,
+ path: str,
+ ) -> None:
+ del self._data[path]
+
+ def get(self):
+ return self._data.values()
+
+
+class Informations:
+ def __init__(self) -> None:
+ self._data = {}
+
+ def add(self,
+ path: str,
+ key: str,
+ data: Any,
+ ) -> None:
+ if path not in self._data:
+ self._data[path] = {}
+ if key in self._data[path]:
+ raise Exception(f'already key {key} in {path}')
+ self._data[path][key] = data
+
+ def get(self,
+ path: str,
+ ) -> List[str]:
+ return self._data.get(path, [])
+
+
+class ParserVariable:
+ def __init__(self):
+ self.paths = Paths()
+ self.families = []
+ self.variables = []
+ self.parents = {'.': []}
+ self.index = 0
+ self.reflector_names = {}
+ self.leaders = []
+ self.followers = []
+ self.multis = {}
+ self.default_multi = {}
+ self.jinja = {}
+ #
+ self.family = Family
+ self.dynamic = Dynamic
+ self.variable = Variable
+ self.choice = Choice
+ #FIXME
+ self.exclude_imports = []
+ self.informations = Informations()
+ self.properties = Property()
+ # self.choices = Appendable()
+ self.has_dyn_option = False
+ super().__init__()
+
+ def init(self):
+ hint = get_type_hints(self.dynamic)
+ self.family_types = hint['type'].__args__
+ self.family_attrs = frozenset(set(hint) | {'redefine'} - {'name', 'path', 'xmlfiles'})
+ self.family_calculations = self.search_calculation(hint)
+ #
+ hint= get_type_hints(self.variable)
+ self.variable_types = hint['type'].__args__
+ #
+ hint= get_type_hints(self.choice)
+ self.choice_attrs = frozenset(set(hint) | {'redefine', 'exists'} - {'name', 'path', 'xmlfiles'})
+ self.choice_calculations = self.search_calculation(hint)
+ super().init()
+
+ def parse_variable_file(self,
+ filename: str,
+ namespace: str,
+ path: str,
+# description: str,
+ ) -> None:
+ with open(filename) as o:
+ objects = safe_load(o)
+ self.validate_file_version(objects)
+ self.parse_family(filename,
+ namespace,
+ path,
+ {},
+ )
+ for name, obj in objects.items():
+ self.family_or_variable(filename,
+ name,
+ path,
+ obj,
+ )
+
+ def get_family_or_variable_type(self,
+ obj: dict,
+ ) -> Optional[str]:
+ if '_type' in obj:
+ # only variable and family has _type attributs
+ return obj['_type']
+ if 'type' in obj and \
+ isinstance(obj['type'], str):
+ return obj['type']
+ return
+
+ def family_or_variable(self,
+ filename: str,
+ name: str,
+ subpath: str,
+ obj: Optional[dict],
+ first_variable: bool=False,
+ family_is_leadership: bool=False,
+ family_is_dynamic: bool=False,
+ ) -> None:
+ if subpath:
+ path = f'{subpath}.{name}'
+ else:
+ path = name
+ if obj is None:
+ obj = {}
+ typ = self.is_family_or_variable(path,
+ obj,
+ family_is_leadership,
+ )
+ if typ == 'family':
+ parser = self.parse_family
+ else:
+ parser = self.parse_variable
+ if name.startswith('_'):
+ raise Exception('forbidden!')
+ parser(filename,
+ name,
+ path,
+ obj,
+ first_variable,
+ family_is_leadership,
+ family_is_dynamic,
+ )
+
+ def is_family_or_variable(self,
+ path: str,
+ obj: dict,
+ family_is_leadership: bool,
+ ) -> bool:
+ # it's already has a variable or a family
+ if path in self.paths:
+ if path in self.families:
+ return 'family'
+ return 'variable'
+ # it's:
+ # my_variable:
+ if not obj:
+ return 'variable'
+ # it has a type:
+ # my_variable:
+ # type: string
+ obj_type = self.get_family_or_variable_type(obj)
+ if obj_type:
+ if obj_type in self.family_types:
+ return 'family'
+ if obj_type in self.variable_types:
+ return 'variable'
+ raise Exception(f'unknown type {obj_type} for {path}')
+ # variable is in a leadership
+ if family_is_leadership:
+ return 'variable'
+ # all attributes are in variable object
+ extra_keys = set(obj) - self.choice_attrs
+ if not extra_keys:
+ for key, value in obj.items():
+ if isinstance(value, dict) and key not in self.choice_calculations:
+ break
+ else:
+ return 'variable'
+ # check all attributs not known in family
+ for key in set(obj) - self.family_attrs:
+ # family attribute can start with '_'
+ if key.startswith('_') and key[1:] in self.family_attrs:
+ continue
+ value = obj[key]
+ # a variable or a family is a dict (or None)
+ if value is not None and not isinstance(value, dict):
+ raise Exception(f'cannot determine if "{path}" is a variable or a family')
+ return 'family'
+
+ def parse_family(self,
+ filename: str,
+ name: str,
+ path: str,
+ family: dict,
+ first_variable: bool=False,
+ family_is_leadership: bool=False,
+ family_is_dynamic: bool=False,
+ ) -> None:
+ family_obj = {}
+ subfamily_obj = {}
+ force_to_attrs = []
+ force_to_variable = []
+ for key, value in family.items():
+ if key in force_to_variable:
+ continue
+ if key.startswith('_'):
+ true_key = key[1:]
+ force_to_attrs.append(key)
+ if true_key in family:
+ force_to_variable.append(true_key)
+ elif key not in self.family_attrs:
+ force_to_variable.append(key)
+ elif isinstance(value, dict):
+ if key in self.family_calculations:
+ force_to_attrs.append(key)
+ else:
+ value_type = self.get_family_or_variable_type(value)
+ if value_type:
+ force_to_variable.append(key)
+ elif 'type' in value:
+ force_to_attrs.append(key)
+ else:
+ force_to_variable.append(key)
+ else:
+ force_to_attrs.append(key)
+ for key, value in family.items():
+ if key in force_to_attrs:
+ if key.startswith('_'):
+ key = key[1:]
+ family_obj[key] = value
+ else:
+ subfamily_obj[key] = value
+ if path in self.paths:
+ if family_obj:
+ if not family.pop('redefine', False):
+ raise Exception('pfff')
+ self.paths.add(path,
+ self.paths[path].copy(update=family),
+ family_is_dynamic,
+ force=True,
+ )
+ self.paths[path].xmlfiles.append(filename)
+ force_not_first = True
+ if self.paths[path].type == 'dynamic':
+ family_is_dynamic = True
+ else:
+ if 'redefine' in family and family['redefine']:
+ raise Exception(f'cannot redefine the inexisting family "{path}" in {filename}')
+ extra_attrs = set(family_obj) - self.family_attrs
+ if extra_attrs:
+ raise Exception(f'extra attrs ... {extra_attrs}')
+ if self.get_family_or_variable_type(family_obj) == 'dynamic':
+ family_is_dynamic = True
+ self.add_family(path,
+ name,
+ family_obj,
+ filename,
+ family_is_dynamic,
+ )
+ force_not_first = False
+ if self.paths[path].type == 'leadership':
+ family_is_leadership = True
+ for idx, key in enumerate(subfamily_obj):
+ value = subfamily_obj[key]
+ if not isinstance(value, dict) and value is not None:
+ raise Exception(f'pfff {key}')
+ first_variable = not force_not_first and idx == 0
+ self.family_or_variable(filename,
+ key,
+ path,
+ value,
+ first_variable,
+ family_is_leadership,
+ family_is_dynamic,
+ )
+
+ def add_family(self,
+ path: str,
+ name: str,
+ family: dict,
+ filename: str,
+ family_is_dynamic: bool,
+ ) -> None:
+ family['path'] = path
+ if not isinstance(filename, list):
+ filename = [filename]
+ family['xmlfiles'] = filename
+ obj_type = self.get_family_or_variable_type(family)
+ if obj_type == 'dynamic':
+ family_obj = self.dynamic
+ if 'variable' in family:
+ family['variable'] = get_realpath(family['variable'], self.path_prefix)
+ else:
+ family_obj = self.family
+ for key, value in family.items():
+ if isinstance(value, dict) and key in self.family_calculations:
+ family[key] = Calculation('family',
+ key,
+ path,
+ value,
+ filename,
+ self,
+ self.path_prefix,
+ False,
+ )
+ try:
+ self.paths.add(path,
+ family_obj(name=name, **family),
+ family_is_dynamic,
+ )
+ except ValidationError as err:
+ raise Exception(f'invalid family "{path}" in "{filename}": {err}')
+ self.set_name(self.paths[path], 'optiondescription_')
+ if '.' not in path:
+ parent = '.'
+ else:
+ parent = path.rsplit('.', 1)[0]
+ self.parents[parent].append(path)
+ self.parents[path] = []
+ self.families.append(path)
+
+ def parse_variable(self,
+ filename: str,
+ name: str,
+ path: str,
+ variable: dict,
+ first_variable: bool,
+ family_is_leadership: bool,
+ family_is_dynamic: bool,
+ ) -> None:
+ #print(path)
+ extra_attrs = set(variable) - self.choice_attrs
+ if extra_attrs:
+ raise Exception(f'extra attrs ... {extra_attrs}')
+ for key, value in variable.items():
+ if isinstance(value, dict) and key in self.choice_calculations:
+ variable[key] = Calculation('variable',
+ key,
+ path,
+ value,
+ filename,
+ self,
+ self.path_prefix,
+ False,
+ )
+ if isinstance(value, list):
+ for idx, val in enumerate(value):
+ if isinstance(val, dict):
+ variable[key][idx] = Calculation('variable',
+ key,
+ path,
+ val,
+ filename,
+ self,
+ self.path_prefix,
+ True,
+ )
+ if path in self.paths:
+ if 'exists' in variable and not variable.pop('exists'):
+ return
+ if not variable.pop('redefine', False):
+ raise Exception('pfff')
+ self.paths.add(path, self.paths[path].copy(update=variable), False, force=True)
+ self.paths[path].xmlfiles.append(filename)
+ else:
+ if 'exists' in variable and variable.pop('exists'):
+ # this variable must exist
+ # but it's not the case
+ # so do nothing
+ return
+ if 'redefine' in variable and variable['redefine']:
+ raise Exception(f'cannot redefine the inexisting variable "{path}" in {filename}')
+ self.add_variable(path,
+ name,
+ variable,
+ filename,
+ family_is_dynamic,
+ )
+ if family_is_leadership:
+ if first_variable:
+ self.leaders.append(path)
+ else:
+ self.followers.append(path)
+
+ def add_variable(self,
+ path: str,
+ name: str,
+ variable: dict,
+ filename: str,
+ family_is_dynamic: bool,
+ ) -> None:
+ variable['path'] = path
+ if not isinstance(filename, list):
+ filename = [filename]
+ variable['xmlfiles'] = filename
+ try:
+ if self.get_family_or_variable_type(variable) == 'symlink':
+ variable_obj = SymLink(name=name, **variable)
+ elif self.get_family_or_variable_type(variable) == 'choice':
+ variable_obj = self.choice(name=name, **variable)
+ else:
+ variable_obj = self.variable(name=name, **variable)
+ except ValidationError as err:
+ raise Exception(f'invalid variable "{path}" in "{filename}": {err}')
+ self.paths.add(path,
+ variable_obj,
+ family_is_dynamic,
+ )
+ self.variables.append(path)
+ self.parents[path.rsplit('.', 1)[0]].append(path)
+ self.set_name(variable_obj, 'option_')
+
+ def del_family(self,
+ path: str,
+ ) -> None:
+ del self.paths[path]
+ self.families.remove(path)
+ del self.parents[path]
+ parent = path.rsplit('.', 1)[0]
+ self.parents[parent].remove(path)
+
+
+class ParserService:
+ def __init__(self):
+ self.service = Service
+ self.ip = IP
+ self.certificate = Certificate
+ self.file = File
+ self.override = Override
+ self.services = {}
+ self.ips = {}
+ self.certificates = {}
+ self.files = {}
+ self.overrides = {}
+
+ def init(self):
+ hint = get_type_hints(self.service)
+ self.service_attrs = frozenset(set(hint) | {'redefine', 'type'} - {'name', 'xmlfiles'})
+ self.service_calculations = self.search_calculation(hint)
+ #
+ hint = get_type_hints(self.ip)
+ self.ip_attrs = frozenset(set(hint) - {'name', 'xmlfiles'})
+ self.ip_calculations = self.search_calculation(hint)
+ #
+ hint = get_type_hints(self.certificate)
+ self.certificate_attrs = frozenset(set(hint) | {'redefine'} - {'name', 'xmlfiles'})
+ self.certificate_calculations = self.search_calculation(hint)
+ #
+ hint = get_type_hints(self.file)
+ self.file_attrs = frozenset(set(hint) | {'redefine'} - {'name', 'xmlfiles'})
+ self.file_calculations = self.search_calculation(hint)
+ #
+ hint = get_type_hints(self.override)
+ self.override_attrs = frozenset(set(hint) - {'name', 'xmlfiles'})
+ self.override_calculations = self.search_calculation(hint)
+
+ def parse_service_file(self,
+ filename: str,
+ ) -> None:
+ with open(filename) as o:
+ objects = safe_load(o)
+ self.validate_file_version(objects)
+ for name, obj in objects.items():
+ self.parse_service(filename,
+ name,
+ obj,
+ )
+
+ def parse_service(self,
+ filename: str,
+ name: str,
+ service: dict,
+ ) -> None:
+ service_obj = {}
+ subservice_obj = {}
+ force_to_variable = []
+ force_to_attrs = []
+ for key, value in service.items():
+ if key in force_to_variable:
+ continue
+ if key.startswith('_'):
+ true_key = key[1:]
+ force_to_attrs.append(key)
+ if true_key in family:
+ force_to_variable.append(true_key)
+ elif key not in self.service_attrs:
+ force_to_variable.append(key)
+ #hu? variable here?
+ elif 'type' in value and value['type'] in self.family_types or value['type'] in self.variable_types:
+ force_to_variable.append(key)
+ else:
+ force_to_attrs.append(key)
+ for key, value in service.items():
+ if key in force_to_attrs:
+ if key.startswith('_'):
+ key = key[1:]
+ service_obj[key] = value
+ else:
+ subservice_obj[key] = value
+ if name in self.services:
+ if service_obj:
+ if not service.pop('redefine', False):
+ raise Exception('pfff')
+ self.services[name] = self.services[name].copy(update=service)
+ else:
+ if '.' not in name:
+ raise Exception('pffff')
+ extra_attrs = set(service_obj) - self.service_attrs
+ if extra_attrs:
+ raise Exception(f'extra attrs ... {extra_attrs}')
+ service_obj['type'] = name.rsplit('.')[1]
+ for key, value in service_obj.items():
+ if isinstance(value, dict) and key in self.service_calculations:
+ service_obj[key] = Calculation('service',
+ key,
+ f'services.{name}',
+ value,
+ filename,
+ self,
+ self.path_prefix,
+ False,
+ )
+ try:
+ self.services[name] = self.service(name=name, **service_obj)
+ except ValidationError as err:
+ raise Exception(f'invalid service "{name}" in "{filename}": {err}')
+ self.services[name].xmlfiles.append(filename)
+ for key, value in subservice_obj.items():
+ if key == 'override':
+ getattr(self, f'parse_service_{key}')(key, value, f'services.{normalize_family(name)}', filename)
+ else:
+ if not isinstance(value, dict):
+ raise Exception(f'pfff {key}')
+ for subname, subvalue in value.items():
+ getattr(self, f'parse_service_{key}')(subname, subvalue, f'services.{normalize_family(name)}', filename)
+
+ def parse_service_ip(self,
+ name: str,
+ ip: dict,
+ path: str,
+ filename: str,
+ ) -> None:
+ extra_attrs = set(ip) - self.ip_attrs
+ if extra_attrs:
+ raise Exception(f'extra attrs ... {extra_attrs}')
+ for key, value in ip.items():
+ if isinstance(value, dict) and key in self.ip_calculations:
+ ip[key] = Calculation('ip',
+ key,
+ path,
+ value,
+ filename,
+ self,
+ self.path_prefix,
+ False,
+ )
+ try:
+ self.ips.setdefault(path, []).append(self.ip(name=name, **ip))
+ except ValidationError as err:
+ raise Exception(f'invalid IP "{path}" in "{filename}": {err}')
+ self.ips[path][-1].xmlfiles.append(filename)
+
+ def parse_service_certificates(self,
+ name: str,
+ certificate: dict,
+ path: str,
+ filename: str,
+ ) -> None:
+ extra_attrs = set(certificate) - self.certificate_attrs
+ if extra_attrs:
+ raise Exception(f'extra attrs ... {extra_attrs}')
+ for key, value in certificate.items():
+ if isinstance(value, dict) and key in self.certificate_calculations:
+ certificate[key] = Calculation('certificate',
+ key,
+ path,
+ value,
+ filename,
+ self,
+ self.path_prefix,
+ False,
)
- self.internal_functions = self.rougailconfig['internal_functions']
- self.dictionaries = False
+ try:
+ self.certificates.setdefault(path, []).append(self.certificate(name=name, **certificate))
+ except ValidationError as err:
+ raise Exception(f'invalid certificate "{path}" in "{filename}": {err}')
+ self.certificates[path][-1].xmlfiles.append(filename)
+
+ def parse_service_files(self,
+ name: str,
+ file: dict,
+ path: str,
+ filename: str,
+ ) -> None:
+ extra_attrs = set(file) - self.file_attrs
+ if extra_attrs:
+ raise Exception(f'extra attrs ... {extra_attrs}')
+ for key, value in file.items():
+ if isinstance(value, dict) and key in self.file_calculations:
+ file[key] = Calculation('file',
+ key,
+ path,
+ value,
+ filename,
+ self,
+ self.path_prefix,
+ False,
+ )
+ try:
+ self.files.setdefault(path, []).append(self.file(name=name, **file))
+ except ValidationError as err:
+ raise Exception(f'invalid file "{path}" in "{filename}": {err}')
+ self.files[path][-1].xmlfiles.append(filename)
+
+ def parse_service_override(self,
+ name: str,
+ override: dict,
+ path: str,
+ filename: str,
+ ) -> None:
+ if override:
+ extra_attrs = set(override) - self.override_attrs
+ if extra_attrs:
+ raise Exception(f'extra attrs ... {extra_attrs}')
+ self.overrides.setdefault(path, []).append(self.override(name=name, **override))
+ else:
+ self.overrides.setdefault(path, []).append(self.override(name=name))
+ self.overrides[path][-1].xmlfiles.append(filename)
+
+
+class RougailConvert(ParserVariable, ParserService):
+ supported_version = ['1.0']
+
+ def __init__(self,
+ rougailconfig: 'RougailConfig'
+ ) -> None:
+ # FIXME useful?
self.annotator = False
self.reflector = None
+ self.rougailconfig = rougailconfig
+ super().__init__()
+ self.is_init = False
+ self.path_prefix = None
- def load_dictionaries(self,
- path_prefix: str=None,
- ) -> None:
- self.rougailobjspace.paths.set_path_prefix(normalize_family(path_prefix))
- self._load_dictionaries(self.rougailobjspace.xmlreflector,
- self.rougailconfig['variable_namespace'],
- self.rougailconfig['dictionaries_dir'],
- path_prefix,
- self.rougailconfig['variable_namespace_description'],
- )
- for namespace, extra_dir in self.rougailconfig['extra_dictionaries'].items():
- if namespace in ['services', self.rougailconfig['variable_namespace']]:
- msg = _(f'Namespace name "{namespace}" is not allowed')
- raise DictConsistencyError(msg, 21, None)
- self._load_dictionaries(self.rougailobjspace.xmlreflector,
- namespace,
- extra_dir,
- path_prefix,
- )
- if hasattr(self.rougailobjspace.space, 'variables'):
- provider_supplier(self.rougailobjspace,
- path_prefix,
- )
- self.dictionaries = True
-
- def _load_dictionaries(self,
- xmlreflector: Reflector,
- namespace: str,
- xmlfolders: List[str],
- path_prefix: str,
- namespace_description: str=None,
+ def search_calculation(self,
+ hint: dict,
) -> List[str]:
- for xmlfile, document in xmlreflector.load_dictionaries_from_folders(xmlfolders, self.rougailobjspace.just_doc):
- self.rougailobjspace.xml_parse_document(xmlfile,
- document,
- namespace,
- namespace_description,
- path_prefix,
- )
+ return [key for key, value in hint.items() if 'Union' in value.__class__.__name__ and Calculation in value.__args__]
+
+
+ def parse_directories(self,
+ path_prefix: Optional[str]=None,
+ ) -> None:
+ if path_prefix:
+ if path_prefix in self.parents:
+ raise Exception('pfffff')
+ root_parent = path_prefix
+ self.path_prefix = path_prefix
+ self.add_family(path_prefix,
+ path_prefix,
+ {},
+ '',
+ False,
+ )
+ else:
+ root_parent = '.'
+ if not self.is_init:
+ self.init()
+ self.is_init = True
+ namespace = self.rougailconfig['variable_namespace']
+ if root_parent == '.':
+ namespace_path = namespace
+ else:
+ namespace_path = f'{root_parent}.{namespace}'
+ if namespace_path in self.parents:
+ raise Exception('pfff')
+ for filename in self.get_sorted_filename(self.rougailconfig['dictionaries_dir']):
+ self.parse_variable_file(filename,
+ namespace,
+ namespace_path,
+ )
+ for namespace, extra_dirs in self.rougailconfig['extra_dictionaries'].items():
+ if root_parent == '.':
+ namespace_path = namespace
+ else:
+ namespace_path = f'{root_parent}.{namespace}'
+ if namespace_path in self.parents:
+ raise Exception('pfff')
+ #self.parents[root_parent].append(namespace_path)
+ #self.parents[namespace_path] = []
+ for filename in self.get_sorted_filename(extra_dirs):
+ self.parse_variable_file(filename,
+ namespace,
+ namespace_path,
+ )
+ for filename in self.get_sorted_filename(self.rougailconfig['services_dir']):
+ self.parse_service_file(filename)
+ if path_prefix:
+ self.path_prefix = None
+ #print(self.parents)
+
+ def get_sorted_filename(self,
+ directories: Union[str, List[str]],
+ ) -> List[str]:
+ if not isinstance(directories, list):
+ directories = [directories]
+ for directory in directories:
+ if not isdir(directory):
+ continue
+ filenames = {}
+ for filename in listdir(directory):
+ if not filename.endswith('.yml'):
+ continue
+ full_filename = join(directory, filename)
+ if filename in filenames:
+ raise DictConsistencyError(_(f'duplicate dictionary file name {filename}'), 78, [filenames[filename][1], full_filename])
+ filenames[filename] = full_filename
+ for filename in sorted(filenames):
+ yield filenames[filename]
+
+ def validate_file_version(self,
+ obj: dict,
+ ) -> None:
+ if 'version' not in obj:
+ raise Exception('version ...')
+ version = obj.pop('version')
+ if version not in self.supported_version:
+ raise Exception(f'pffff version ... {version} not in {self.supported_version}')
+
+ def set_name(self,
+ obj,
+ option_prefix,
+ ):
+ self.index += 1
+ self.reflector_names[obj.path] = f'{option_prefix}{self.index}{self.rougailconfig["suffix"]}'
def annotate(self):
if self.annotator:
raise DictConsistencyError(_('Cannot execute annotate multiple time'), 85, None)
- SpaceAnnotator(self.rougailobjspace)
+ SpaceAnnotator(self)
self.annotator = True
- def reflexion(self,
- exclude_imports: list=[],
- ):
- if not self.dictionaries:
- self.load_dictionaries()
- if not self.annotator:
- self.annotate()
- if self.reflector:
- raise DictConsistencyError(_('Cannot execute reflexion multiple time'), 86, None)
+ def reflect(self):
functions_file = self.rougailconfig['functions_file']
if not isinstance(functions_file, list):
functions_file = [functions_file]
- functions_file = [func for func in functions_file if func not in exclude_imports]
- self.reflector = TiramisuReflector(self.rougailobjspace,
+ functions_file = [func for func in functions_file if func not in self.exclude_imports]
+ self.reflector = TiramisuReflector(self,
functions_file,
- self.internal_functions,
- self.rougailconfig,
)
def save(self,
- filename: str,
- ) -> str:
+ filename: None,
+ ) -> 'OptionDescription':
"""Return tiramisu object declaration as a string
"""
- if self.reflector is None:
- self.reflexion()
+ if not self.paths.has_value():
+ self.parse_directories()
+ self.annotate()
+ self.reflect()
output = self.reflector.get_text() + '\n'
if filename:
with open(filename, 'w') as tiramisu:
tiramisu.write(output)
+# print(output)
return output
diff --git a/src/rougail/objspace.py b/src/rougail/objspace.py
index 7eb0db904..b5176138e 100644
--- a/src/rougail/objspace.py
+++ b/src/rougail/objspace.py
@@ -92,9 +92,10 @@ def convert_boolean(value: str) -> bool:
"""
if isinstance(value, bool):
return value
- if value == 'True':
+ value = value.lower()
+ if value == 'true':
return True
- elif value == 'False':
+ elif value == 'false':
return False
raise Exception(f'unknown boolean value {value}')
@@ -587,24 +588,24 @@ class RougailObjSpace:
getattr(space, child.tag).append(variableobj)
else:
setattr(space, child.tag, variableobj)
-
-
-def get_variables(objectspace):
- """Iter all variables from the objectspace
- """
- if not hasattr(objectspace.space, 'variables'):
- return
- for family in objectspace.space.variables.values():
- yield from _get_variables(family, objectspace.family)
-
-
-def _get_variables(family, family_type):
- if hasattr(family, 'variable'):
- for variable in family.variable.values():
- if isinstance(variable, family_type):
- yield from _get_variables(variable, family_type)
- else:
- yield variable
- if hasattr(family, 'variables'):
- for family in family.variables.values():
- yield from _get_variables(family, family_type)
+#
+#
+#def get_variables(objectspace):
+# """Iter all variables from the objectspace
+# """
+# if not hasattr(objectspace.space, 'variables'):
+# return
+# for family in objectspace.space.variables.values():
+# yield from _get_variables(family, objectspace.family)
+#
+#
+#def _get_variables(family, family_type):
+# if hasattr(family, 'variable'):
+# for variable in family.variable.values():
+# if isinstance(variable, family_type):
+# yield from _get_variables(variable, family_type)
+# else:
+# yield variable
+# if hasattr(family, 'variables'):
+# for family in family.variables.values():
+# yield from _get_variables(family, family_type)
diff --git a/src/rougail/providersupplier.py b/src/rougail/providersupplier.py
index 59365929d..35b9e12b4 100644
--- a/src/rougail/providersupplier.py
+++ b/src/rougail/providersupplier.py
@@ -16,26 +16,26 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
-from rougail.objspace import get_variables
-from rougail.utils import normalize_family
-
-
-def provider_supplier(objectspace,
- path_prefix,
- ):
- n_path_prefix = normalize_family(path_prefix)
- for variable in get_variables(objectspace):
- if variable.path_prefix != n_path_prefix:
- continue
- if hasattr(variable, 'provider'):
- family_name, variable.name = variable.path.rsplit('.', 1)
- objectspace.paths.set_provider(variable,
- variable.name,
- family_name,
- )
- if hasattr(variable, 'supplier'):
- family_name, variable.name = variable.path.rsplit('.', 1)
- objectspace.paths.set_supplier(variable,
- variable.name,
- family_name,
- )
+#from rougail.objspace import get_variables
+#from rougail.utils import normalize_family
+#
+#
+#def provider_supplier(objectspace,
+# path_prefix,
+# ):
+# n_path_prefix = normalize_family(path_prefix)
+# for variable in get_variables(objectspace):
+# if variable.path_prefix != n_path_prefix:
+# continue
+# if hasattr(variable, 'provider'):
+# family_name, variable.name = variable.path.rsplit('.', 1)
+# objectspace.paths.set_provider(variable,
+# variable.name,
+# family_name,
+# )
+# if hasattr(variable, 'supplier'):
+# family_name, variable.name = variable.path.rsplit('.', 1)
+# objectspace.paths.set_supplier(variable,
+# variable.name,
+# family_name,
+# )
diff --git a/src/rougail/template/base.py b/src/rougail/template/base.py
deleted file mode 100644
index 8dc1ef6e8..000000000
--- a/src/rougail/template/base.py
+++ /dev/null
@@ -1,676 +0,0 @@
-"""Template langage for Rougail
-
-Created by:
-EOLE (http://eole.orion.education.fr)
-Copyright (C) 2005-2018
-
-Forked by:
-Cadoles (http://www.cadoles.com)
-Copyright (C) 2019-2021
-
-Silique (https://www.silique.fr)
-Copyright (C) 2022-2023
-
-distribued with GPL-2 or later license
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-"""
-
-from shutil import copy
-import logging
-from typing import Dict, Any, Union
-from subprocess import call
-from os import listdir, makedirs, getcwd, chdir, unlink, rmdir, chmod
-from os.path import dirname, join, isfile, isdir, abspath
-
-
-try:
- from tiramisu4 import Config, undefined
- from tiramisu4.api import TiramisuOption
- from tiramisu4.error import PropertiesOptionError # pragma: no cover
-except ModuleNotFoundError: # pragma: no cover
- from tiramisu import Config, undefined
- from tiramisu.api import TiramisuOption
- from tiramisu.error import PropertiesOptionError
-
-from ..config import RougailConfig
-from ..error import FileNotFound, TemplateError
-from ..i18n import _
-from ..utils import load_modules
-
-from . import engine as engines
-ENGINES = {}
-for engine in engines.__all__:
- ENGINES[engine] = getattr(engines, engine)
-
-
-log = logging.getLogger(__name__)
-log.addHandler(logging.NullHandler())
-
-
-INFORMATIONS = {'files': ['mode', 'engine', 'included'],
- 'overrides': ['name', 'source', 'engine'],
- 'service_names': ['doc', 'engine', 'type', 'target', 'undisable'],
- 'certificates': ['authority', 'format'],
- }
-DEFAULT = {'files': ['owner', 'group'],
- 'overrides': [],
- }
-
-
-class RougailLeaderIndex:
- """This object is create when access to a specified Index of the variable
- """
- def __init__(self,
- value,
- follower,
- index,
- ) -> None:
- self._value = value
- self._follower = follower
- self._index = index
-
- def __getattr__(self, name):
- if name not in self._follower:
- raise AttributeError(f'unable to find follower "{name}"')
- value = self._follower[name]
- if isinstance(value, PropertiesOptionError):
- raise AttributeError(f'unable to access to follower "{name}": {value}')
- return value
-
- def __getitem__(self, name):
- return self.__getattr__(name)
-
- def __contains__(self, name):
- if self._follower.__contains__(name):
- value = self._follower[name]
- return not isinstance(value, PropertiesOptionError)
- return False
-
- def __str__(self):
- return str(self._value)
-
- def __lt__(self, value):
- return self._value.__lt__(value)
-
- def __le__(self, value):
- return self._value.__le__(value)
-
- def __eq__(self, value):
- return self._value.__eq__(value)
-
- def __ne__(self, value):
- return self._value.__ne__(value)
-
- def __gt__(self, value):
- return self._value.__gt__(value)
-
- def __ge__(self, value):
- return self._value >= value
-
- def __add__(self, value):
- return self._value.__add__(value)
-
- def __radd__(self, value):
- return value + self._value
-
-
-class RougailLeader:
- """Implement access to leader and follower variable
- For examples: %%leader, %%leader[0].follower1
- """
- def __init__(self,
- leader_name,
- value,
- ) -> None:
- self._value = value
- self._follower = {leader_name: value}
-
- def __getitem__(self, index):
- """Get a leader.follower at requested index.
- """
- followers = {key: values[index] for key, values in self._follower.items()}
- return RougailLeaderIndex(self._value[index],
- followers,
- index,
- )
-
- def __iter__(self):
- """Iterate over leader.follower.
-
- Return synchronised value of leader.follower.
- """
- for index in range(len(self._value)):
- yield self.__getitem__(index)
-
- def __len__(self):
- return len(self._value)
-
- def __contains__(self, value):
- return self._value.__contains__(value)
-
- def _add_follower(self,
- config,
- name: str,
- path: str,
- ):
- """Add a new follower
- """
- self._follower[name] = []
- for index in range(len(self._value)):
- try:
- value = config.option(path, index).value.get()
- except PropertiesOptionError as err:
- value = err
- self._follower[name].append(value)
-
- def index(self, value):
- return self._value.index(value)
-
- def __str__(self):
- followers_name = list(self._follower)
- return f'RougailLeader({followers_name[0]}) => {followers_name[1:]}'
-
-
-class RougailExtra:
- """Object that implement access to extra variable
- For example %%extra1.family.variable
- """
- def __init__(self,
- name: str,
- suboption: Dict,
- path: str,
- ) -> None:
- self._name = name
- self._suboption = suboption
- self._path = path
-
- def __getattr__(self,
- key: str,
- ) -> Any:
- try:
- return self._suboption[key]
- except KeyError:
- raise AttributeError(f'unable to find extra "{self._path}.{key}"')
-
- def __getitem__(self,
- key: str,
- ) -> Any:
- return self.__getattr__(key)
-
- def __iter__(self):
- return iter(self._suboption.values())
-
- def items(self):
- return self._suboption.items()
-
- def __str__(self):
- return f'RougailExtra("{self._name}") => {self._suboption}'
-
- def __contains__(self, value):
- return self._suboption.__contains__(value)
-
-
-class RougailBaseTemplate:
- """Engine to process Creole cheetah template
- """
- def __init__(self, # pylint: disable=R0913
- root: Union[Config, TiramisuOption],
- rougailconfig: RougailConfig=None,
- ) -> None:
- if rougailconfig is None:
- rougailconfig = RougailConfig
- self.root = root
- self.destinations_dir = abspath(rougailconfig['destinations_dir'])
- self.tmp_dir = abspath(rougailconfig['tmp_dir'])
- self.templates_dir = []
- templates_dir = rougailconfig['templates_dir']
- if not isinstance(templates_dir, list):
- templates_dir = [templates_dir]
- for templ_dir in templates_dir:
- self.templates_dir.append(abspath(templ_dir))
- patches_dir = rougailconfig['patches_dir']
- if not isinstance(patches_dir, list):
- patches_dir = [patches_dir]
- self.patches_dir = []
- for p_dir in patches_dir:
- self.patches_dir.append(abspath(p_dir))
- eos = {}
- functions_file = rougailconfig['functions_file']
- if not isinstance(functions_file, list):
- functions_file = [functions_file]
- for function in functions_file:
- if isfile(function):
- eosfunc = load_modules(function)
- for func in dir(eosfunc):
- if not func.startswith('_'):
- eos[func] = getattr(eosfunc, func)
- self.eosfunc = eos
- self.rougail_variables_dict = {}
- self.rougailconfig = rougailconfig
- self.log = log
- self.engines = ENGINES
-
- def patch_template(self,
- filename: str,
- templates_dir: str,
- ) -> None:
- """Apply patch to a template
- """
- patch_cmd = ['patch', '-d', self.tmp_dir, '-N', '-p1', '-f']
- patch_no_debug = ['-s', '-r', '-', '--backup-if-mismatch']
-
- for patches_dir in self.patches_dir:
- patch_file = join(patches_dir, f'{filename}.patch')
- if isfile(patch_file):
- self.log.info(_("Patching template '{filename}' with '{patch_file}'"))
- ret = call(patch_cmd + patch_no_debug + ['-i', patch_file])
- if ret: # pragma: no cover
- patch_cmd_err = ' '.join(patch_cmd + ['-i', patch_file])
- msg = _(f"Error applying patch: '{patch_file}'\n"
- f"To reproduce and fix this error {patch_cmd_err}")
- self.log.error(_(msg))
- copy(join(templates_dir, filename), self.tmp_dir)
-
- def prepare_template(self,
- filename: str,
- templates_dir: str,
- ) -> None:
- """Prepare template source file
- """
- self.log.info(_("Copy template: '{filename}' -> '{self.tmp_dir}'"))
- if not isdir(self.tmp_dir):
- raise TemplateError(_(f'cannot find tmp_dir {self.tmp_dir}'))
- copy(join(templates_dir, filename), self.tmp_dir)
- self.patch_template(filename, templates_dir)
-
- def _instance_file(self,
- filevar: Dict,
- type_: str,
- service_name: str,
- extra_variables: str,
- ) -> str:
- """Run templatisation on one file
- """
- if 'variable' in filevar:
- variable = filevar['variable']
- else:
- variable = None
- filenames = filevar.get('name')
- if not isinstance(filenames, list):
- filenames = [filenames]
- if variable and not isinstance(variable, list):
- variable = [variable]
- if not isdir(self.destinations_dir):
- raise TemplateError(_(f'cannot find destinations_dir {self.destinations_dir}'))
- destfilenames = []
- for idx, filename, in enumerate(filenames):
- if variable:
- var = variable[idx]
- else:
- var = None
- func = f'get_data_{type_}'
- data = getattr(self, func)(filevar,
- filename,
- service_name,
- variable,
- idx,
- )
- if data is None:
- continue
- filename, source, true_destfilename, var = data
- self.log.info(_(f'Instantiating file "{filename}"'))
- if not true_destfilename.startswith('/'):
- raise TemplateError(f'true_destfilename must starts with a / in function {func}')
- destfilename = join(self.destinations_dir, true_destfilename[1:])
- makedirs(dirname(destfilename), exist_ok=True)
- self.log.info(_(f"{filevar['engine']} processing: '{destfilename}'"))
- if isfile(destfilename):
- raise TemplateError(_(f'destination file "{destfilename}" already exists'))
- self.engines[filevar['engine']].process(filename=filename,
- source=source,
- true_destfilename=true_destfilename,
- destfilename=destfilename,
- destdir=self.destinations_dir,
- variable=var,
- index=idx,
- rougail_variables_dict=self.rougail_variables_dict,
- eosfunc=self.eosfunc,
- extra_variables=extra_variables,
- )
- self.process(true_destfilename,
- destfilename,
- filevar.get('mode'),
- filevar.get('owner'),
- filevar.get('group'),
- )
- destfilenames.append(destfilename)
- return destfilenames
-
- def load_variables(self, with_flatten=True):
- if isinstance(self.root, Config):
- list_options = self.root.option.list(type='all')
- else:
- list_options = self.root.list(type='all')
- for option in list_options:
- namespace = option.name()
- if with_flatten and namespace == self.rougailconfig['variable_namespace']:
- is_variable_namespace = True
- else:
- is_variable_namespace = False
- if namespace == 'services':
- is_service_namespace = 'root'
- else:
- is_service_namespace = False
- self.rougail_variables_dict[namespace] = self._load_variables(option,
- is_variable_namespace,
- is_service_namespace,
- )
-
- def instance_file(self,
- template_name,
- extra_variables=None,
- ) -> None:
- if not self.rougail_variables_dict:
- self.load_variables()
- self.prepare_templates()
- for service_obj in self.root.option('services').list('all'):
- service_name = service_obj.description()
- service_desactived = service_obj.option('activate').value.get() is False
- for fills in service_obj.list('optiondescription'):
- type_ = fills.name()
- for fill_obj in fills.list('all'):
- fill = {path.split('.')[-1]: value for path, value in fill_obj.value.dict().items()}
- self.get_default(type_, fill, fill_obj)
- self.get_informations(type_, fill, fill_obj)
- if fill['source'] != template_name:
- continue
- if service_desactived:
- raise TemplateError(f'template {template_name} is inside a desactived service')
- if 'included' in fill and fill['included'] != 'no':
- raise TemplateError(f'template {template_name} is an included file')
- if not fill['activate']:
- raise TemplateError(f'template {template_name} is desactived')
- try:
- ori_dir = getcwd()
- except FileNotFoundError:
- ori_dir = None
- chdir(self.tmp_dir)
- try:
- self._instance_file(fill,
- type_,
- service_name,
- extra_variables,
- )
- except Exception as err:
- if ori_dir is not None:
- chdir(ori_dir)
- raise err from err
- if ori_dir is not None:
- chdir(ori_dir)
- return
-
- raise TemplateError(f'Cannot find template {template_name}')
-
- def instance_files(self,
- extra_variables=None,
- ) -> None:
- """Run templatisation on all files
- """
- try:
- ori_dir = getcwd()
- except FileNotFoundError:
- ori_dir = None
- chdir(self.tmp_dir)
- try:
- if not self.rougail_variables_dict:
- self.load_variables()
- self.prepare_templates()
- files_to_delete = []
- for included in (True, False):
- for service_obj in self.root.option('services').list('all'):
- service_name = service_obj.description()
- if service_obj.option('activate').value.get() is False:
- if included is False and not service_obj.information.get('undisable', False):
- self.desactive_service(service_name)
- continue
- if not included:
- engine = service_obj.information.get('engine', None)
- if engine:
- self._instance_file({'engine': engine},
- 'service',
- service_name,
- extra_variables,
- )
- target_name = service_obj.information.get('target', None)
- if target_name:
- self.target_service(service_name,
- target_name,
- engine is None,
- )
- for fills in service_obj.list('optiondescription'):
- type_ = fills.name()
- for fill_obj in fills.list('all'):
- fill = {path.split('.')[-1]: value for path, value in fill_obj.value.dict().items()}
- self.get_default(type_, fill, fill_obj)
- self.get_informations(type_, fill, fill_obj)
- if 'included' in fill:
- if (fill['included'] == 'no' and included is True) or \
- (fill['included'] != 'no' and included is False):
- continue
- elif included is True:
- continue
- if fill['activate']:
- destfilenames = self._instance_file(fill,
- type_,
- service_name,
- extra_variables,
- )
- if included and fill.get('included', 'no') == 'content':
- files_to_delete.extend(destfilenames)
- elif 'name' in fill:
- self.log.debug(_(f"Instantiation of file '{fill['name']}' disabled"))
- self.post_instance_service(service_name)
- for filename in files_to_delete:
- unlink(filename)
- parent = filename
- while True:
- parent = dirname(parent)
- if listdir(parent):
- break
- rmdir(parent)
- self.post_instance()
- except Exception as err:
- if ori_dir is not None:
- chdir(ori_dir)
- raise err
- if ori_dir is not None:
- chdir(ori_dir)
-
- def prepare_templates(self):
- for templates_dir in self.templates_dir:
- for template in listdir(templates_dir):
- self.prepare_template(template,
- templates_dir,
- )
-
- def get_default(self,
- type_: str,
- dico: dict,
- obj: 'Option',
- ) -> None:
- for key in DEFAULT.get(type_, []):
- default_key = f'default_{type_}_{key}'
- if default_key in RougailConfig:
- default_value = RougailConfig[default_key]
- else:
- default_value = undefined
- dico[key] = dico.get(key, default_value)
-
- def get_informations(self,
- type_: str,
- dico: dict,
- obj: 'Option',
- ) -> None:
- for key in INFORMATIONS.get(type_, []):
- if key == 'target':
- default_value = None
- elif key == 'undisable':
- default_value = False
- elif key == 'engine' and type_ == 'service_names':
- default_value = None
- else:
- default_key = f'default_{type_}_{key}'
- if default_key in RougailConfig:
- default_value = RougailConfig[default_key]
- else:
- default_value = undefined
- value = obj.information.get(key, default_value)
- if key != 'target' or value != default_value:
- dico[key] = obj.information.get(key, default_value)
-
- def desactive_service(self,
- *args,
- ):
- raise NotImplementedError(_('cannot desactivate a service'))
-
- def target_service(self,
- service_name: str,
- *args,
- ):
- raise NotImplementedError(_('cannot use target for the service {service_name}'))
-
- def post_instance_service(self,
- *args,
- ): # pragma: no cover
- pass
-
- def process(self,
- filename: str,
- destfilename: str,
- mode: str,
- owner: str,
- group: str,
- ) -> None:
- if owner not in [None, self.rougailconfig['default_files_owner']]:
- #FIXME
- raise TemplateError(_(f'cannot change owner of file {destfilename}'))
- if group not in [None, self.rougailconfig['default_files_group']]:
- #FIXME
- raise TemplateError(_(f'cannot change group of file {destfilename}'))
- if mode not in [None, self.rougailconfig['default_files_mode']]:
- chmod(destfilename, eval(f'0o{mode}'))
-
- def post_instance(self): # pragma: no cover
- pass
-
- def get_data_ip(self,
- *args,
- ) -> None: # pragma: no cover
- raise NotImplementedError(_('cannot instanciate this service type ip'))
-
- def get_data_files(self,
- filevar: Dict,
- destfile: str,
- service_name: str,
- variable,
- idx: int,
- ) -> None: # pragma: no cover
- source = filevar['source']
- if not isfile(source): # pragma: no cover
- raise FileNotFound(_(f'Source file "{source}" does not exist in {", ".join(self.templates_dir)}'))
- tmp_file = join(self.tmp_dir, source)
- if variable:
- var = variable[idx]
- else:
- var = None
- return tmp_file, None, destfile, var
-
- def get_data_service(self,
- *args,
- ) -> None: # pragma: no cover
- raise NotImplementedError(_('cannot instanciate this service'))
-
- def get_data_overrides(self,
- *args,
- ) -> None: # pragma: no cover
- raise NotImplementedError(_('cannot instanciate this service type override'))
-
- def get_data_certificates(self,
- *args,
- ) -> None: # pragma: no cover
- pass
-
- def _load_variables(self,
- optiondescription,
- is_variable_namespace: str,
- is_service_namespace: str,
- ) -> RougailExtra:
- """Load all variables and set it in RougailExtra objects
- """
- variables = {}
- if isinstance(self.root, TiramisuOption):
- len_root_path = len(self.root.path()) + 1
- for option in optiondescription.list('all'):
- if option.isoptiondescription():
- if option.isleadership():
- for idx, suboption in enumerate(option.list('all')):
- if idx == 0:
- leader_name = suboption.name()
- leader = RougailLeader(leader_name, suboption.value.get())
- leadership_name = option.name()
- if is_variable_namespace:
- self.rougail_variables_dict[suboption.name()] = leader
- else:
- if isinstance(self.root, TiramisuOption):
- path = (suboption.path())[len_root_path:]
- else:
- path = suboption.path()
- leader._add_follower(self.root,
- suboption.name(),
- path,
- )
- variables[leadership_name] = RougailExtra(option.name(), {leader_name: leader}, option.path())
- else:
- if is_service_namespace == 'root':
- new_is_service_namespace = 'service_name'
- elif is_service_namespace == 'service_name':
- new_is_service_namespace = option.name()
- elif is_service_namespace in INFORMATIONS:
- # remove 's'
- new_is_service_namespace = is_service_namespace[:-1]
- else:
- new_is_service_namespace = is_service_namespace
- subfamilies = self._load_variables(option,
- is_variable_namespace,
- new_is_service_namespace,
- )
- variables[option.name()] = subfamilies
- else:
- name = option.name()
- value = option.value.get()
- if is_variable_namespace:
- self.rougail_variables_dict[name] = value
- variables[name] = value
- if isinstance(is_service_namespace, str) and is_service_namespace + 's' in INFORMATIONS:
- self.get_default(is_service_namespace + 's',
- variables,
- optiondescription,
- )
- self.get_informations(is_service_namespace + 's',
- variables,
- optiondescription,
- )
- return RougailExtra(optiondescription.name(), variables, optiondescription.path())
diff --git a/src/rougail/template/engine/__init__.py b/src/rougail/template/engine/__init__.py
deleted file mode 100644
index 02e371ea3..000000000
--- a/src/rougail/template/engine/__init__.py
+++ /dev/null
@@ -1,4 +0,0 @@
-from . import none, cheetah, jinja, creole_legacy
-
-
-__all__ = ('none', 'cheetah', 'jinja', 'creole_legacy')
diff --git a/src/rougail/template/engine/cheetah.py b/src/rougail/template/engine/cheetah.py
deleted file mode 100644
index 7912012c7..000000000
--- a/src/rougail/template/engine/cheetah.py
+++ /dev/null
@@ -1,141 +0,0 @@
-"""Creole engine
-
-Created by:
-EOLE (http://eole.orion.education.fr)
-Copyright (C) 2005-2018
-
-Forked by:
-Cadoles (http://www.cadoles.com)
-Copyright (C) 2021
-
-Silique (https://www.silique.fr)
-Copyright (C) 2022-2023
-
-distribued with GPL-2 or later license
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-"""
-from os.path import abspath, normpath
-from Cheetah.Template import Template
-from Cheetah.NameMapper import NotFound
-from typing import Dict, Any
-
-from ...i18n import _
-from ...utils import normalize_family
-from ...error import TemplateError
-
-
-@classmethod
-def cl_compile(kls, *args, **kwargs):
- """Rewrite compile methode to force some settings
- """
- kwargs['compilerSettings'] = {'directiveStartToken': '%',
- 'cheetahVarStartToken': '%%',
- 'commentStartToken': '#',
- }
- return kls.old_compile(*args, **kwargs) # pylint: disable=E1101
-Template.old_compile = Template.compile
-Template.compile = cl_compile
-
-
-class CheetahTemplate(Template): # pylint: disable=W0223
- """Construct a cheetah templating object
- """
- def __init__(self,
- filename: str,
- source: str,
- context,
- eosfunc: Dict,
- extra_context: Dict,
- ):
- """Initialize Creole CheetahTemplate
- """
- if filename is not None:
- super().__init__(file=filename,
- searchList=[context, eosfunc, extra_context],
- )
- else:
- super().__init__(source=source,
- searchList=[context, eosfunc, extra_context],
- )
-
- # FORK of Cheetah function, do not replace '\\' by '/'
- def serverSidePath(self,
- path=None,
- normpath=normpath,
- abspath=abspath
- ): # pylint: disable=W0621
-
- # strange...
- if path is None and isinstance(self, str):
- path = self
- if path: # pylint: disable=R1705
- return normpath(abspath(path))
-# original code return normpath(abspath(path.replace("\\", '/')))
- elif hasattr(self, '_filePath') and self._filePath: # pragma: no cover
- return normpath(abspath(self._filePath))
- else: # pragma: no cover
- return None
-
-
-# Sync to creole_legacy.py
-def process(filename: str,
- source: str,
- true_destfilename: str,
- destfilename: str,
- destdir: str,
- variable: Any,
- index: int,
- rougail_variables_dict: Dict,
- eosfunc: Dict,
- extra_variables: Any=None,
- ):
- """Process a cheetah template
- """
- # full path of the destination file
- try:
- extra_context = {'normalize_family': normalize_family,
- 'rougail_filename': true_destfilename,
- 'rougail_destination_dir': destdir,
- }
- if variable is not None:
- extra_context['rougail_variable'] = variable
- if index is not None:
- extra_context['rougail_index'] = index
- if extra_variables:
- extra_context['extra_variables'] = extra_variables
- cheetah_template = CheetahTemplate(filename,
- source,
- rougail_variables_dict,
- eosfunc,
- extra_context,
- )
- data = str(cheetah_template)
- except NotFound as err: # pragma: no cover
- varname = err.args[0][13:].split(' ', 1)[0][:-1]
- if filename:
- msg = f"Error: unknown variable used in template {filename} to {destfilename}: {varname}"
- else:
- msg = f"Error: unknown variable used in file {destfilename}: {varname}"
- raise TemplateError(_(msg)) from err
- except Exception as err: # pragma: no cover
- if filename:
- msg = _(f"Error while instantiating template {filename} to {destfilename}: {err}")
- else:
- msg = _(f"Error while instantiating filename {destfilename}: {err}")
- raise TemplateError(msg) from err
-
- with open(destfilename, 'w') as file_h:
- file_h.write(data)
diff --git a/src/rougail/template/engine/creole_legacy.py b/src/rougail/template/engine/creole_legacy.py
deleted file mode 100644
index e09af4099..000000000
--- a/src/rougail/template/engine/creole_legacy.py
+++ /dev/null
@@ -1,170 +0,0 @@
-"""Legacy Creole engine
-
-Created by:
-EOLE (http://eole.orion.education.fr)
-Copyright (C) 2005-2018
-
-Forked by:
-Cadoles (http://www.cadoles.com)
-Copyright (C) 2021
-
-Silique (https://www.silique.fr)
-Copyright (C) 2022-2023
-
-distribued with GPL-2 or later license
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-"""
-
-
-from typing import Dict, Any
-from Cheetah.NameMapper import NotFound
-
-from .cheetah import CheetahTemplate as oriCheetahTemplate
-from ...i18n import _
-from ...utils import normalize_family
-from ...error import TemplateError
-
-
-@classmethod
-def cl_compile(kls, *args, **kwargs):
- """Rewrite compile methode to force some settings
- """
- kwargs['compilerSettings'] = {'directiveStartToken' : u'%',
- 'cheetahVarStartToken' : u'%%',
- 'EOLSlurpToken' : u'%',
- 'PSPStartToken' : u'µ' * 10,
- 'PSPEndToken' : u'µ' * 10,
- 'commentStartToken' : u'µ' * 10,
- 'commentEndToken' : u'µ' * 10,
- 'multiLineCommentStartToken' : u'µ' * 10,
- 'multiLineCommentEndToken' : u'µ' * 10}
- return kls.old_compile(*args, **kwargs) # pylint: disable=E1101
-
-
-class IsDefined:
- """
- filtre permettant de ne pas lever d'exception au cas où
- la variable Creole n'est pas définie
- """
- def __init__(self, context):
- self.context = context
-
- def __call__(self, varname):
- if '.' in varname:
- splitted_var = varname.split('.')
- if len(splitted_var) != 2:
- msg = u"Group variables must be of type master.slave"
- raise KeyError(msg)
- master, slave = splitted_var
- if master in self.context:
- return slave in self.context[master].slave.keys()
- return False
- else:
- return varname in self.context
-
-
-class CreoleClient():
- def get(self, path):
- path = path.replace('/', '.')
- if path.startswith('.'):
- path = path[1:]
- if '.' not in path:
- return self.context[path]
- else:
- root, path = path.split('.', 1)
- obj = self.context[root]
- for var in path.split('.'):
- obj = getattr(obj, var)
- return obj
-
-
-def is_empty(data):
- if str(data) in ['', '""', "''", "[]", "['']", '[""]', "None"]:
- return True
- return False
-
-
-class CheetahTemplate(oriCheetahTemplate):
- def __init__(self,
- filename: str,
- source: str,
- context,
- eosfunc: Dict,
- extra_context: Dict,
- ):
- creole_client = CreoleClient()
- creole_client.context=context
- extra_context['is_defined'] = IsDefined(context)
- extra_context['creole_client'] = creole_client
- extra_context['is_empty'] = is_empty
- extra_context['_creole_filename'] = extra_context['rougail_filename']
- super().__init__(filename, source, context, eosfunc, extra_context)
-
-
-# Sync to creole.py
-def process(filename: str,
- source: str,
- true_destfilename: str,
- destfilename: str,
- destdir: str,
- variable: Any,
- index: int,
- rougail_variables_dict: Dict,
- eosfunc: Dict,
- extra_variables: Any=None,
- ):
- """Process a cheetah template
- """
- # full path of the destination file
- ori_compile = oriCheetahTemplate.compile
- oriCheetahTemplate.compile = cl_compile
- try:
- extra_context = {'normalize_family': normalize_family,
- 'rougail_filename': true_destfilename,
- 'rougail_destination_dir': destdir,
- }
- if variable is not None:
- extra_context['rougail_variable'] = variable
- if index is not None:
- extra_context['rougail_index'] = index
- if extra_variables:
- extra_context['extra_variables'] = extra_variables
- cheetah_template = CheetahTemplate(filename,
- source,
- rougail_variables_dict,
- eosfunc,
- extra_context,
- )
- data = str(cheetah_template)
- except NotFound as err: # pragma: no cover
- varname = err.args[0][13:-1]
- if filename:
- msg = f"Error: unknown variable used in template {filename} to {destfilename}: {varname}"
- else:
- msg = f"Error: unknown variable used in file {destfilename}: {varname}"
- oriCheetahTemplate.compile = ori_compile
- raise TemplateError(_(msg)) from err
- except Exception as err: # pragma: no cover
- if filename:
- msg = _(f"Error while instantiating template {filename} to {destfilename}: {err}")
- else:
- msg = _(f"Error while instantiating filename {destfilename}: {err}")
- oriCheetahTemplate.compile = ori_compile
- raise TemplateError(msg) from err
-
- with open(destfilename, 'w') as file_h:
- file_h.write(data)
- oriCheetahTemplate.compile = ori_compile
diff --git a/src/rougail/template/engine/jinja.py b/src/rougail/template/engine/jinja.py
deleted file mode 100644
index 3c1d7ddb7..000000000
--- a/src/rougail/template/engine/jinja.py
+++ /dev/null
@@ -1,81 +0,0 @@
-"""Jinja engine
-
-Created by:
-EOLE (http://eole.orion.education.fr)
-Copyright (C) 2005-2018
-
-Forked by:
-Cadoles (http://www.cadoles.com)
-Copyright (C) 2021
-
-Silique (https://www.silique.fr)
-Copyright (C) 2022-2023
-
-distribued with GPL-2 or later license
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-"""
-from typing import Any, Dict
-from jinja2 import Environment, FileSystemLoader
-from jinja2.exceptions import UndefinedError
-
-from ...i18n import _
-from ...utils import normalize_family
-from ...error import TemplateError
-
-
-def process(filename: str,
- source: str,
- true_destfilename: str,
- destfilename: str,
- destdir: str,
- variable: Any,
- index: int,
- rougail_variables_dict: Dict,
- eosfunc: Dict,
- extra_variables: Any=None,
- ):
- """Process a cheetah template
- """
- # full path of the destination file
- dir_name, template_name = filename.rsplit('/', 1)
- if source is not None: # pragma: no cover
- raise TemplateError(_('source is not supported for jinja'))
- var = {}
- if variable is not None:
- var['rougail_variable'] = variable
- if index is not None:
- var['rougail_index'] = index
- if extra_variables:
- var['extra_variables'] = extra_variables
- try:
- # extra_context = {'normalize_family': normalize_family,
- # eosfunc
- env = Environment(loader=FileSystemLoader([dir_name, destdir]))
- template = env.get_template(template_name)
- 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}"
- raise TemplateError(_(msg)) from err
-
- if not data.endswith('\n'):
- data = data + '\n'
- with open(destfilename, 'w') as file_h:
- file_h.write(data)
diff --git a/src/rougail/template/engine/none.py b/src/rougail/template/engine/none.py
deleted file mode 100644
index 4ad045336..000000000
--- a/src/rougail/template/engine/none.py
+++ /dev/null
@@ -1,43 +0,0 @@
-"""None engine
-
-Created by:
-EOLE (http://eole.orion.education.fr)
-Copyright (C) 2005-2018
-
-Forked by:
-Cadoles (http://www.cadoles.com)
-Copyright (C) 2021
-
-Silique (https://www.silique.fr)
-Copyright (C) 2022-2023
-
-distribued with GPL-2 or later license
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-"""
-from typing import Any
-from shutil import copy
-
-
-def process(filename: str,
- source: str,
- destfilename: str,
- **kwargs
- ):
- if filename is not None:
- copy(filename, destfilename)
- else:
- with open(destfilename, 'w') as fh:
- fh.write(source)
diff --git a/src/rougail/template/systemd.py b/src/rougail/template/systemd.py
deleted file mode 100644
index fa3025c3d..000000000
--- a/src/rougail/template/systemd.py
+++ /dev/null
@@ -1,206 +0,0 @@
-"""Template langage for Rougail to create file and systemd file
-
-Cadoles (http://www.cadoles.com)
-Copyright (C) 2021
-
-Silique (https://www.silique.fr)
-Copyright (C) 2022-2023
-
-distribued with GPL-2 or later license
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-"""
-
-from typing import Dict, Any
-from os import makedirs, symlink
-from os.path import dirname, isfile, join
-from ipaddress import ip_network
-
-from .base import RougailBaseTemplate
-from ..i18n import _
-from ..error import FileNotFound, TemplateError
-
-
-ROUGAIL_IP_TEMPLATE = """[Service]
-%for %%ip in %%rougail_variable
-IPAddressAllow=%%ip
-%end for
-IPAddressDeny=any
-"""
-
-
-LOCAL_DIR = ('/etc/', '/var/', '/srv/')
-
-
-class RougailSystemdTemplate(RougailBaseTemplate):
- def __init__(self, # pylint: disable=R0913
- config: 'Config',
- rougailconfig: 'RougailConfig'=None,
- ) -> None:
- self.ip_per_service = None
- super().__init__(config, rougailconfig)
- self.rougail_tmpl_template = f"""%def display(%%file, %%filename, %%service_activate, %%file_activate)
-"""
- tmp_local_dir = (f"%%filename.startswith('{local_dir}')" for local_dir in LOCAL_DIR)
- self.rougail_tmpl_template += '%if ' + ' or '.join(tmp_local_dir)
- self.rougail_tmpl_template += f"""
- %if {self.rougailconfig['systemd_tmpfile_delete_before_create']}
-r %%filename
- %end if
- %if %%service_activate and %%file_activate
-%set %%mode = %%str(%%file.mode)
- %if %%len(%%mode) == 3
-%set %%mode = '0' + %%mode
- %end if
-C %%filename %%mode %%file.owner %%file.group - {self.rougailconfig['systemd_tmpfile_factory_dir']}%%filename
- %end if
-%end if
-%end def
-%for %%service in %%services
- %if %%hasattr(%%service, 'files')
- %for %%file in %%service.files
- %if %%hasattr(%%file, 'name') and %%file.included != 'content'
- %if %%isinstance(%%file.name, list)
- %for %%filename in %%file.name
-%%display(%%file, %%filename, %%service.activate, %%file.activate)%slurp
- %end for
- %else
-%%display(%%file, %%file.name, %%service.activate, %%file.activate)%slurp
- %end if
- %end if
- %end for
- %end if
-%end for
-"""
-
- def get_data_overrides(self,
- filevar: Dict,
- destfile,
- service_name: str,
- *args,
- ) -> tuple:
- source = filevar['source']
- if not isfile(source): # pragma: no cover
- raise FileNotFound(_(f'Override source file "{source}" does not exist in {", ".join(self.templates_dir)}'))
- tmp_file = join(self.tmp_dir, source)
- service_name = filevar['name']
- destfile = f'{self.rougailconfig["systemd_service_directory"]}/system/{service_name}.d/{self.rougailconfig["systemd_service_file"]}'
- return tmp_file, None, destfile, None
-
- def get_data_ip(self,
- filevar: Dict,
- ip,
- service_name: str,
- var: Any,
- idx: int,
- *args,
- ) -> tuple:
- if self.ip_per_service is None:
- self.ip_per_service = []
- if 'netmask' in filevar:
- if isinstance(filevar["netmask"], list):
- netmask = filevar['netmask'][idx]
- else:
- netmask = filevar['netmask']
- self.ip_per_service.append(str(ip_network(f'{ip}/{netmask}')))
- elif ip:
- self.ip_per_service.append(ip)
-
- def get_data_service(self,
- servicevar: Dict,
- info,
- service_name: str,
- *args,
- ):
- tmp_file = join(self.tmp_dir, service_name)
- var = None
- destfile = f'{self.rougailconfig["systemd_service_directory"]}/system/{service_name}'
- return tmp_file, None, destfile, var
-
-
- def desactive_service(self,
- service_name: str,
- ):
- filename = f'{self.destinations_dir}/{self.rougailconfig["systemd_service_directory"]}/system/{service_name}'
- makedirs(dirname(filename), exist_ok=True)
- symlink('/dev/null', filename)
-
- def target_service(self,
- service_name: str,
- target_name: str,
- system_service: bool,
- ):
- """system_service: means that the service is not generated by rougail
- """
- filename = f'{self.destinations_dir}/{self.rougailconfig["systemd_service_directory"]}/system/{target_name}.target.wants/{service_name}'
- makedirs(dirname(filename), exist_ok=True)
- if system_service:
- source_filename = f'{self.rougailconfig["system_service_directory"]}/{service_name}'
- else:
- source_filename = f'{self.rougailconfig["systemd_service_destination_directory"]}{self.rougailconfig["systemd_service_directory"]}/system/{service_name}'
- symlink(source_filename, filename)
-
- def post_instance_service(self,
- service_name: str,
- ) -> None: # pragma: no cover
- if self.ip_per_service is None:
- return
- destfile = f'{self.rougailconfig["systemd_service_directory"]}/system/{service_name}.d/{self.rougailconfig["systemd_service_ip_file"]}'
- destfilename = join(self.destinations_dir, destfile[1:])
- makedirs(dirname(destfilename), exist_ok=True)
- self.log.info(_(f"Cheetah processing: '{destfilename}'"))
- self.engines['cheetah'].process(filename=None,
- source=ROUGAIL_IP_TEMPLATE,
- true_destfilename=destfile,
- destfilename=destfilename,
- destdir=self.destinations_dir,
- variable=self.ip_per_service,
- index=None,
- rougail_variables_dict=self.rougail_variables_dict,
- eosfunc=self.eosfunc,
- )
- self.ip_per_service = None
-
- def process(self,
- filename: str,
- destfilename: str,
- mode: str,
- owner: str,
- group: str,
- ) -> None:
- for local_dir in LOCAL_DIR:
- if filename.startswith(local_dir):
- return
- if owner not in [None, self.rougailconfig['default_files_owner']]:
- raise TemplateError(_(f'cannot change owner of file {destfilename}'))
- if group not in [None, self.rougailconfig['default_files_group']]:
- raise TemplateError(_(f'cannot change group of file {destfilename}'))
- super().process(filename, destfilename, mode, owner, group)
-
- def post_instance(self):
- tmpfiles_filename = f"{self.rougailconfig['systemd_tmpfile_directory']}/{self.rougailconfig['systemd_tmpfile_file']}"
- destfilename = join(self.destinations_dir, tmpfiles_filename[1:])
- makedirs(dirname(destfilename), exist_ok=True)
- self.log.info(_(f"Cheetah processing: '{destfilename}'"))
- self.engines['cheetah'].process(filename=None,
- source=self.rougail_tmpl_template,
- true_destfilename=tmpfiles_filename,
- destfilename=destfilename,
- destdir=self.destinations_dir,
- variable=None,
- index=None,
- rougail_variables_dict=self.rougail_variables_dict,
- eosfunc=self.eosfunc,
- )
diff --git a/src/rougail/tiramisureflector.py b/src/rougail/tiramisureflector.py
index 68cc2716f..53a7d37cc 100644
--- a/src/rougail/tiramisureflector.py
+++ b/src/rougail/tiramisureflector.py
@@ -28,6 +28,7 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
+from typing import Optional
from json import dumps
from os.path import isfile, basename
@@ -35,13 +36,14 @@ from .i18n import _
from .annotator import CONVERT_OPTION
from .objspace import RootRougailObject
from .error import DictConsistencyError
-from .utils import normalize_family
+from .utils import normalize_family, Calculation
class BaseElt: # pylint: disable=R0903
"""Base element
"""
path = '.'
+ type = 'family'
def sorted_func_name(func_name):
@@ -56,21 +58,28 @@ class TiramisuReflector:
def __init__(self,
objectspace,
funcs_paths,
- internal_functions,
- cfg,
):
- self.cfg = cfg
+ self.rougailconfig = objectspace.rougailconfig
self.jinja_added = False
+ self.reflector_objects = {}
self.text = {'header': [],
'option': [],
- 'optiondescription': [],
}
+ if self.rougailconfig['export_with_import']:
+ if self.rougailconfig['internal_functions']:
+ for func in self.rougailconfig['internal_functions']:
+ self.text['header'].append(f"func[func] = func")
+ self.text['header'].extend(["from tiramisu import *",
+ "from tiramisu.setting import ALLOWED_LEADER_PROPERTIES",
+ ])
+ for mode in self.rougailconfig["modes_level"]:
+ self.text['header'].append(f'ALLOWED_LEADER_PROPERTIES.add("{mode}")')
if funcs_paths:
- if self.cfg['export_with_import']:
+ if self.rougailconfig['export_with_import']:
self.text['header'].extend(["from importlib.machinery import SourceFileLoader as _SourceFileLoader",
"from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec",
- "class func:",
- " pass",
+ "global func",
+ "func = {'calc_value': calc_value}",
"",
"def _load_functions(path):",
" global _SourceFileLoader, _spec_from_loader, _module_from_spec, func",
@@ -81,39 +90,27 @@ class TiramisuReflector:
" for function in dir(func_):",
" if function.startswith('_'):",
" continue",
- " setattr(func, function, getattr(func_, function))",
+ " func[function] = getattr(func_, function)",
])
for funcs_path in sorted(funcs_paths, key=sorted_func_name):
if not isfile(funcs_path):
continue
self.text['header'].append(f"_load_functions('{funcs_path}')")
- if self.cfg['export_with_import']:
- if internal_functions:
- for func in internal_functions:
- self.text['header'].append(f"setattr(func, '{func}', {func})")
- self.text['header'].extend(["try:",
- " from tiramisu4 import *",
- " from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES",
- "except:",
- " from tiramisu import *",
- " from tiramisu.setting import ALLOWED_LEADER_PROPERTIES",
- ])
- for mode in objectspace.rougailconfig["modes_level"]:
- self.text['header'].append(f'ALLOWED_LEADER_PROPERTIES.add("{mode}")')
self.objectspace = objectspace
self.make_tiramisu_objects()
- if self.cfg['export_with_import'] and (self.cfg['force_convert_dyn_option_description'] or self.objectspace.has_dyn_option is True):
+ if self.rougailconfig['export_with_import'] and (self.rougailconfig['force_convert_dyn_option_description'] or self.objectspace.has_dyn_option is True):
self.text['header'].append("from rougail.tiramisu import ConvertDynOptionDescription")
+ for key, value in self.objectspace.jinja.items():
+ self.add_jinja_to_function(key, value)
- def add_jinja_to_function(self,
- variable_name: str,
- jinja: str,
- ) -> None:
+ def add_jinja_support(self):
if not self.jinja_added:
self.text['header'].extend(["from jinja2 import StrictUndefined, DictLoader",
"from jinja2.sandbox import SandboxedEnvironment",
"from rougail.annotator.variable import CONVERT_OPTION",
+ "from tiramisu.error import ValueWarning",
"def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):",
+ " global ENV, CONVERT_OPTION",
" kw = {}",
" for key, value in kwargs.items():",
" if '.' in key:",
@@ -124,21 +121,42 @@ class TiramisuReflector:
" c_kw[var] = value",
" else:",
" kw[key] = value",
- " values = ENV.get_template(__internal_jinja).render(kw)",
+ " values = ENV.get_template(__internal_jinja).render(kw, **func).strip()",
" convert = CONVERT_OPTION[__internal_type].get('func', str)",
" if __internal_multi:",
- " return [convert(val) for val in values.split(',')]",
- " return convert(values)",
- "def valid_with_jinja(value, **kwargs):",
- " kwargs[kwargs.pop('__internal_key')] = value",
- " value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)",
+ " return [convert(val) for val in values.split()]",
+ " values = convert(values)",
+ " return values if values != '' and values != 'None' else None",
+ "def variable_to_property(prop, value):",
+ " return prop if value else None",
+ "def jinja_to_property(prop, **kwargs):",
+ " value = func['jinja_to_function'](**kwargs)",
+ " return func['variable_to_property'](prop, value is not None)",
+ "def jinja_to_property_help(prop, **kwargs):",
+ " value = func['jinja_to_function'](**kwargs)",
+ " return (prop, f'\"{prop}\" ({value})')",
+ "def valid_with_jinja(warning=False, **kwargs):",
+ " global ValueWarning",
+ " value = func['jinja_to_function'](**kwargs)",
" if value:",
- " raise ValueError(value)",
- "func.jinja_to_function = jinja_to_function",
- "func.valid_with_jinja = valid_with_jinja",
+ " if warning:",
+ " raise ValueWarning(value)",
+ " else:",
+ " raise ValueError(value)",
+ "func['jinja_to_function'] = jinja_to_function",
+ "func['jinja_to_property'] = jinja_to_property",
+ "func['jinja_to_property_help'] = jinja_to_property_help",
+ "func['variable_to_property'] = variable_to_property",
+ "func['valid_with_jinja'] = valid_with_jinja",
"dict_env = {}",
])
self.jinja_added = True
+
+ def add_jinja_to_function(self,
+ variable_name: str,
+ jinja: str,
+ ) -> None:
+ self.add_jinja_support()
jinja_text = dumps(jinja, ensure_ascii=False)
self.text['header'].append(f"dict_env['{variable_name}'] = {jinja_text}")
@@ -146,20 +164,30 @@ class TiramisuReflector:
"""make tiramisu objects
"""
baseelt = BaseElt()
- baseelt.reflector_name = f'option_0{self.objectspace.rougailconfig["suffix"]}'
- self.set_name(baseelt)
+ self.objectspace.reflector_names[baseelt.path] = f'option_0{self.rougailconfig["suffix"]}'
basefamily = Family(baseelt,
self,
)
- if not self.objectspace.paths.has_path_prefix():
- for elt in self.reorder_family(self.objectspace.space):
- self.populate_family(basefamily,
- elt,
- )
- if not hasattr(basefamily.elt, 'information'):
- basefamily.elt.information = self.objectspace.information(None)
- basefamily.elt.information = self.objectspace.paths.get_providers_path()
- basefamily.elt.information.update(self.objectspace.paths.get_suppliers_path())
+ #FIXMEif not self.objectspace.paths.has_path_prefix():
+ if 1:
+# for elt in self.reorder_family(self.objectspace.space):
+ for elt in self.objectspace.paths.get():
+ if elt.path in self.objectspace.families:
+ Family(elt,
+ self,
+ )
+ else:
+ Variable(elt,
+ self,
+ )
+
+# self.populate_family(basefamily,
+# elt,
+# )
+#FIXME if not hasattr(basefamily.elt, 'information'):
+# basefamily.elt.information = self.objectspace.information(None)
+# basefamily.elt.information = self.objectspace.paths.get_providers_path()
+# basefamily.elt.information.update(self.objectspace.paths.get_suppliers_path())
else:
path_prefixes = self.objectspace.paths.get_path_prefixes()
for path_prefix in path_prefixes:
@@ -179,75 +207,76 @@ class TiramisuReflector:
setattr(baseprefix.elt.information, key, value)
for key, value in self.objectspace.paths.get_suppliers_path(path_prefix).items():
setattr(baseprefix.elt.information, key, value)
- baseelt.name = normalize_family(self.cfg['base_option_name'])
- baseelt.doc = self.cfg['base_option_name']
- baseelt.reflector_object.get([], baseelt.doc, 'base') # pylint: disable=E1101
-
- def reorder_family(self, space):
- """variable_namespace family has to be loaded before any other family
- because `extra` family could use `variable_namespace` variables.
- """
- if hasattr(space, 'variables'):
- variable_namespace = self.objectspace.rougailconfig['variable_namespace']
- if variable_namespace in space.variables:
- yield space.variables[variable_namespace]
- for elt, value in space.variables.items():
- if elt != self.objectspace.rougailconfig['variable_namespace']:
- yield value
- if hasattr(space, 'services'):
- yield space.services
-
- def populate_family(self,
- parent_family,
- elt,
- ):
- """Populate family
- """
- self.set_name(elt)
- family = Family(elt,
- self,
- )
- parent_family.add(family)
- for children in vars(elt).values():
- if isinstance(children, self.objectspace.family):
- self.populate_family(family,
- children,
- )
- continue
- if isinstance(children, dict):
- children = list(children.values())
- if isinstance(children, list):
- for child in children:
- if isinstance(child, self.objectspace.property_) or \
- not isinstance(child, RootRougailObject):
- continue
- if isinstance(child, self.objectspace.variable):
- self.set_name(child)
- family.add(Variable(child,
- self,
- ))
- else:
- self.populate_family(family,
- child,
- )
+ baseelt.name = normalize_family(self.rougailconfig['base_option_name'])
+ baseelt.description = self.rougailconfig['base_option_name']
+ self.reflector_objects[baseelt.path].get([], baseelt.description) # pylint: disable=E1101
+#
+# def reorder_family(self, space):
+# """family has to be loaded before any other family
+# because `extra` family could use `variable_namespace` variables.
+# """
+# if hasattr(space, 'variables'):
+# variable_namespace = self.rougailconfig['variable_namespace']
+# if variable_namespace in space.variables:
+# yield space.variables[variable_namespace]
+# for elt, value in space.variables.items():
+# if elt != self.rougailconfig['variable_namespace']:
+# yield value
+# if hasattr(space, 'services'):
+# yield space.services
+#
+# def populate_family(self,
+# parent_family,
+# elt,
+# ):
+# """Populate family
+# """
+# self.set_name(elt)
+# family = Family(elt,
+# self,
+# )
+# parent_family.add(family)
+# for children in vars(elt).values():
+# if isinstance(children, self.objectspace.family):
+# self.populate_family(family,
+# children,
+# )
+# continue
+# if isinstance(children, dict):
+# children = list(children.values())
+# if isinstance(children, list):
+# for child in children:
+# if isinstance(child, self.objectspace.property_) or \
+# not isinstance(child, RootRougailObject):
+# continue
+# if isinstance(child, self.objectspace.variable):
+# self.set_name(child)
+# family.add(Variable(child,
+# self,
+# ))
+# else:
+# self.populate_family(family,
+# child,
+# )
def set_name(self,
elt,
):
"""Set name
"""
- if not hasattr(elt, 'reflector_name'):
- self.objectspace.paths.set_name(elt, 'optiondescription_')
- return elt.reflector_name
+ if elt.path not in self.objectspace.reflector_names:
+ self.objectspace.set_name(elt, 'optiondescription_')
+ return self.objectspace.reflector_names[elt.path]
def get_text(self):
"""Get text
"""
if self.jinja_added:
self.text['header'].extend(["ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)",
+ "ENV.filters = func",
"ENV.compile_templates('jinja_caches', zip=None)",
])
- return '\n'.join(self.text['header'] + self.text['option'] + self.text['optiondescription'])
+ return '\n'.join(self.text['header'] + self.text['option'])
class Common:
@@ -257,13 +286,14 @@ class Common:
elt,
tiramisu,
):
+ self.objectspace = tiramisu.objectspace
self.elt = elt
self.option_name = None
self.tiramisu = tiramisu
- self.elt.reflector_object = self
+ tiramisu.reflector_objects[elt.path] = self
self.object_type = None
- def get(self, calls, parent_name, typ):
+ def get(self, calls, parent_name):
"""Get tiramisu's object
"""
self_calls = calls.copy()
@@ -273,7 +303,7 @@ class Common:
self_calls.append(self.elt.path)
self.calls = self_calls
if self.option_name is None:
- self.option_name = self.elt.reflector_name
+ self.option_name = self.objectspace.reflector_names[self.elt.path]
self.populate_attrib()
self.populate_informations()
return self.option_name
@@ -282,19 +312,13 @@ class Common:
"""Populate attributes
"""
keys = {'name': self.convert_str(self.elt.name)}
- if hasattr(self.elt, 'doc'):
- keys['doc'] = self.convert_str(self.elt.doc)
+ if hasattr(self.elt, 'description') and self.elt.description:
+ keys['doc'] = self.convert_str(self.elt.description)
self._populate_attrib(keys)
- if hasattr(self.elt, 'properties'):
- keys['properties'] = self.properties_to_string(self.elt.properties)
+ if self.elt.path in self.objectspace.properties:
+ keys['properties'] = self.properties_to_string(self.objectspace.properties[self.elt.path])
attrib = ', '.join([f'{key}={value}' for key, value in keys.items()])
- if self.__class__.__name__ == 'Family':
- #pouet
- name = 'option'
- #name = 'optiondescription'
- else:
- name = 'option'
- self.tiramisu.text[name].append(f'{self.option_name} = {self.object_type}({attrib})')
+ self.tiramisu.text['option'].append(f'{self.option_name} = {self.object_type}({attrib})')
def _populate_attrib(self,
keys: dict,
@@ -305,6 +329,8 @@ class Common:
def convert_str(value):
"""convert string
"""
+ if value is None:
+ return 'None'
return dumps(value, ensure_ascii=False)
def properties_to_string(self,
@@ -312,37 +338,36 @@ class Common:
) -> None:
"""Change properties to string
"""
- properties = [self.convert_str(property_) for property_ in values
- if isinstance(property_, str)]
- calc_properties = [self.calc_properties(property_) for property_ in values \
- if isinstance(property_, self.tiramisu.objectspace.property_)]
+ properties = []
+ calc_properties = []
+ for property_, value in values.items():
+ if value is True:
+ properties.append(self.convert_str(property_))
+ else:
+ calc_properties.append(self.calculation_value('property', value))
return 'frozenset({' + ', '.join(sorted(properties) + calc_properties) + '})'
def calc_properties(self,
- child,
+ prop,
+ calculation,
) -> str:
"""Populate properties
"""
- option_name = child.source.reflector_object.get(self.calls, self.elt.path, 'property')
+ option_name = self.tiramisu.reflector_objects[child.source.path].get(self.calls, self.elt.path)
kwargs = (f"'condition': ParamOption({option_name}, notraisepropertyerror=True), "
f"'expected': {self.populate_param(child.expected)}")
if child.inverse:
kwargs += ", 'reverse_condition': ParamValue(True)"
- return (f"Calculation(func.calc_value, Params(ParamValue('{child.name}'), "
- f"kwargs={{{kwargs}}}), func.calc_value_property_help)")
+ return (f"Calculation(func['calc_value'], Params(ParamValue('{child.name}'), "
+ f"kwargs={{{kwargs}}}), func['calc_value_property_help'])")
def populate_informations(self):
"""Populate Tiramisu's informations
"""
- if not hasattr(self.elt, 'information'):
+ informations = self.objectspace.informations.get(self.elt.path)
+ if not informations:
return
- if isinstance(self.elt.information, dict):
- informations = self.elt.information
- else:
- informations = vars(self.elt.information)
for key, value in informations.items():
- if key == 'xmlfiles':
- continue
if isinstance(value, str):
value = self.convert_str(value)
self.tiramisu.text['option'].append(f"{self.option_name}.impl_set_information('{key}', {value})")
@@ -352,51 +377,94 @@ class Common:
):
"""Populate variable parameters
"""
- if param.type in ['number', 'boolean', 'nil', 'port', 'choice', 'space']:
- return f'ParamValue({param.text})'
- if param.type in ['variable_name', 'variable']:
- return self.build_option_param(param)
- if param.type == 'information':
- if hasattr(self.elt, 'multi') and self.elt.multi:
+ if not isinstance(param, dict):
+ if isinstance(param, str):
+ value = self.convert_str(param)
+ else:
+ value = param
+ return f'ParamValue({value})'
+ if param['type'] == 'information':
+ if self.elt.multi:
default = []
else:
default = None
- if hasattr(param, 'variable'):
- if param.variable.path == self.elt.path:
- return f'ParamSelfInformation("{param.text}", {default})'
- return f'ParamInformation("{param.text}", {default}, option={param.variable.reflector_object.get(self.calls, self.elt.path, "param")})'
- return f'ParamInformation("{param.text}", {default})'
- if param.type == 'suffix':
+ if 'variable' in param:
+ if param['variable'].path == self.elt.path:
+ return f'ParamSelfInformation("{param["information"]}", {default})'
+ return f'ParamInformation("{param["information"]}", {default}, option={self.tiramisu.reflector_objects[param["variable"].path].get(self.calls, self.elt.path)})'
+ return f'ParamInformation("{param["information"]}", {default})'
+ if param['type'] == 'suffix':
return 'ParamSuffix()'
- if param.type == 'index':
+ if param['type'] == 'index':
return 'ParamIndex()'
- if param.type == 'jinja':
- self.tiramisu.add_jinja_to_function(self.elt.path, param.text)
- return f'ParamValue("{self.elt.path}")'
- value = self.convert_str(param.text)
- return f'ParamValue({value})'
+ if param['type'] == 'variable':
+ return self.build_option_param(param['variable'],
+ param.get('propertyerror', True),
+ param.get('suffix'),
+ )
+ raise Exception('pfff')
def build_option_param(self,
param,
+ propertyerror,
+ suffix: Optional[str],
) -> str:
"""build variable parameters
"""
- if param.type == 'variable':
- option_name = param.text.reflector_object.get(self.calls, self.elt.path, 'param')
- else:
- option_name = param.text
+ if param.path == self.elt.path:
+ return 'ParamSelfOption(whole=False)'
+ option_name = self.tiramisu.reflector_objects[param.path].get(self.calls, self.elt.path)
params = [f'{option_name}']
- if hasattr(param, 'suffix'):
+ if suffix is not None:
param_type = 'ParamDynOption'
- family = param.family.reflector_object.get(self.calls, self.elt.path, 'suffix')
- params.extend([f"'{param.suffix}'", f'{family}'])
- if param.optional:
- params.append('optional=True')
+ family = self.tiramisu.reflector_objects[param.path.rsplit('.', 1)[0]].get(self.calls, self.elt.path)
+ params.extend([f"'{suffix}'", f'{family}'])
+#FIXME if param.optional:
+#FIXME params.append('optional=True')
else:
param_type = 'ParamOption'
- if not param.propertyerror:
+ if not propertyerror:
params.append('notraisepropertyerror=True')
- return "{}({})".format(param_type, ', '.join(params))
+ return f'{param_type}({", ".join(params)})'
+
+ def calculation_value(self,
+ typ: str,
+ function,
+ # function,
+ ) -> str:
+ """Generate calculated value
+ """
+ self.tiramisu.add_jinja_support()
+ if typ == 'property':
+ child = function.to_property_function()
+ elif typ == 'default':
+ child = function.to_default_function()
+ elif typ == 'validator':
+ child = function.to_validator_function()
+ elif typ == 'choice':
+ child = function.to_choice_function()
+ else:
+ raise Exception('connard')
+ new_args = []
+ kwargs = []
+ if 'params' in child:
+ for key, value in child['params'].items():
+ if not key:
+ for val in value:
+ new_args.append(self.populate_param(val))
+ else:
+ kwargs.append(f"'{key}': " + self.populate_param(value))
+ ret = f"Calculation(func['{child['function']}'], Params((" + ', '.join(new_args) + ')'
+ if kwargs:
+ ret += ', kwargs={' + ', '.join(kwargs) + '}'
+ ret += ')'
+ if hasattr(child, 'warnings_only'):
+ print('HU????')
+ ret += f', warnings_only={child.warnings_only}'
+ if 'help' in child:
+ ret += f", help_function=func['{child['help']}']"
+ ret = ret + ')'
+ return ret
class Variable(Common):
@@ -412,72 +480,60 @@ class Variable(Common):
def _populate_attrib(self,
keys: dict,
):
- if hasattr(self.elt, 'opt'):
- keys['opt'] = self.elt.opt.reflector_object.get(self.calls, self.elt.path, 'opt')
- if hasattr(self.elt, 'choice'):
- values = self.elt.choice
- if values[0].type == 'variable':
- value = values[0].name.reflector_object.get(self.calls, self.elt.path, 'choice')
- keys['values'] = f"Calculation(func.calc_value, Params((ParamOption({value}))))"
- elif values[0].type == 'function':
- keys['values'] = self.calculation_value(values[0], [])
+ if self.elt.type == 'symlink':
+ keys['opt'] = self.tiramisu.reflector_objects[self.elt.opt.path].get(self.calls, self.elt.path)
+ if self.elt.type == 'choice':
+ choices = self.elt.choices
+ if isinstance(choices, Calculation):
+ keys['values'] = self.calculation_value('choice', choices)
+# if values['type'] == 'variable':
+# value = self.tiramisu.reflector_objects[values['variable'].path].get(self.calls, self.elt.path)
+# keys['values'] = f"Calculation(func['calc_value'], Params((ParamOption({value}))))"
+# elif values['type'] == 'jinja':
+# keys['values'] = self.calculation_value(values)
else:
- keys['values'] = str(tuple([val.name for val in values]))
- if hasattr(self.elt, 'multi') and self.elt.multi:
- keys['multi'] = self.elt.multi
- for key in ['default', 'default_multi']:
- if hasattr(self.elt, key) and getattr(self.elt, key) is not None:
- value = getattr(self.elt, key)
- if isinstance(value, str):
- value = self.convert_str(value)
- elif isinstance(value, self.tiramisu.objectspace.value):
- value = self.calculation_value(value, [], calc_multi=value.calc_multi)
- keys[key] = value
- if hasattr(self.elt, 'validators'):
- keys['validators'] = '[' + ', '.join([self.calculation_value(val,
- ['ParamSelfOption(whole=False)']) for val in self.elt.validators]) + ']'
- for key in ['min_number', 'max_number']:
- if hasattr(self.elt, key):
- keys[key] = getattr(self.elt, key)
+ new_values = []
+ for value in choices:
+ if isinstance(value, Calculation):
+ new_values.append(self.calculation_value('choice', value))
+ else:
+ new_values.append(self.convert_str(value))
+ keys['values'] = '(' + ', '.join(new_values)
+ if len(new_values) <= 1:
+ keys['values'] += ','
+ keys['values'] += ')'
+ if self.elt.path in self.objectspace.multis:
+ keys['multi'] = self.objectspace.multis[self.elt.path]
+ if hasattr(self.elt, 'default') and self.elt.default is not None:
+ value = self.elt.default
+ if isinstance(value, str):
+ value = self.convert_str(value)
+ elif isinstance(value, Calculation):
+ value = self.calculation_value('default', value)
+ keys['default'] = value
+ if self.elt.path in self.objectspace.default_multi:
+ value = self.objectspace.default_multi[self.elt.path]
+ if isinstance(value, str):
+ value = self.convert_str(value)
+ elif isinstance(value, Calculation):
+ value = self.calculation_value('default_multi', value) # calc_multi=key == 'calc_multi')
+ keys['default_multi'] = value
+ if self.elt.validators:
+ validators = []
+ for val in self.elt.validators:
+ if isinstance(val, Calculation):
+ validators.append(self.calculation_value('validator', val))
+ else:
+ validators.append(val)
+ keys['validators'] = '[' + ', '.join(validators) + ']'
+ #keys['validators'] = '[' + ', '.join([self.calculation_value(val)['ParamSelfOption(whole=False)']) for val in self.elt.validators]) + ']'
+ if self.elt.params:
+ keys.update(self.elt.params)
for key, value in CONVERT_OPTION[self.elt.type].get('initkwargs', {}).items():
if isinstance(value, str):
value = f"'{value}'"
keys[key] = value
- def calculation_value(self,
- child,
- args,
- calc_multi=False,
- ) -> str:
- """Generate calculated value
- """
- kwargs = []
- # has parameters
- function = child.name
- new_args = []
- if hasattr(child, 'param'):
- for param in child.param:
- value = self.populate_param(param)
- if not hasattr(param, 'name'):
- new_args.append(str(value))
- else:
- kwargs.append(f"'{param.name}': " + value)
- if function == 'valid_network_netmask':
- new_args.extend(args)
- else:
- args.extend(new_args)
- new_args = args
- ret = f'Calculation(func.{function}, Params((' + ', '.join(new_args) + ')'
- if kwargs:
- ret += ', kwargs={' + ', '.join(kwargs) + '}'
- ret += ')'
- if hasattr(child, 'warnings_only'):
- ret += f', warnings_only={child.warnings_only}'
- ret = ret + ')'
- if calc_multi:
- ret = '[' + ret + ']'
- return ret
-
class Family(Common):
"""Manage family
@@ -487,10 +543,10 @@ class Family(Common):
tiramisu,
):
super().__init__(elt, tiramisu)
- if hasattr(self.elt, 'suffixes'):
+ if self.elt.type == 'dynamic':
self.tiramisu.objectspace.has_dyn_option = True
self.object_type = 'ConvertDynOptionDescription'
- elif hasattr(self.elt, 'leadership') and self.elt.leadership:
+ elif self.elt.type == 'leadership':
self.object_type = 'Leadership'
else:
self.object_type = 'OptionDescription'
@@ -504,7 +560,10 @@ class Family(Common):
def _populate_attrib(self,
keys: list,
) -> None:
- if hasattr(self.elt, 'suffixes'):
- dyn = self.elt.suffixes.reflector_object.get(self.calls, self.elt.path, 'suffixes')
- keys['suffixes'] = f"Calculation(func.calc_value, Params((ParamOption({dyn}, notraisepropertyerror=True))))"
- keys['children'] = '[' + ', '.join([child.get(self.calls, self.elt.path, 'child') for child in self.children]) + ']'
+ if self.elt.type == 'dynamic':
+ dyn = self.tiramisu.reflector_objects[self.elt.variable.path].get(self.calls, self.elt.path)
+ keys['suffixes'] = f"Calculation(func['calc_value'], Params((ParamOption({dyn}, notraisepropertyerror=True))))"
+ children = []
+ for path in self.objectspace.parents[self.elt.path]:
+ children.append(self.objectspace.paths[path])
+ keys['children'] = '[' + ', '.join([self.tiramisu.reflector_objects[child.path].get(self.calls, self.elt.path) for child in children]) + ']'
diff --git a/src/rougail/update.py b/src/rougail/update.py
index e519d4fb9..c0cf9162e 100644
--- a/src/rougail/update.py
+++ b/src/rougail/update.py
@@ -23,31 +23,526 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
-from typing import List
-from os.path import join, isfile, basename
-from os import listdir
+from typing import List, Any, Optional, Tuple
+from os.path import join, isfile, isdir, basename
+from os import listdir, makedirs
from lxml.etree import DTD, parse, XMLParser, XMLSyntaxError # pylint: disable=E0611
from lxml.etree import Element, SubElement, tostring
-from ast import parse as ast_parse
+#from ast import parse as ast_parse
+from json import dumps
+from yaml import safe_load, dump, SafeDumper
+from pathlib import Path
from .i18n import _
from .error import UpgradeError
from .utils import normalize_family
from .config import RougailConfig
+from .annotator.variable import CONVERT_OPTION
-VERSIONS = {'creole': ['1'],
- 'rougail': ['0.9', '0.10'],
- }
+VERSIONS = ['0.10', '1.0']
+
+FIXME_PRINT_FILENAME = True
+FIXME_PRINT_FILENAME = False
+FIXME_PRINT_FILE = True
+FIXME_PRINT_FILE = False
+FIXME_PRINT_UNKNOWN_VAR = True
+FIXME_PRINT_UNKNOWN_VAR = False
+FIXME_PRINT_REMOVE = True
+FIXME_PRINT_REMOVE = False
-def get_function_name(root, version):
+def get_function_name(version):
version = version.replace('.', '_')
- return f'update_{root}_{version}'
+ return f'update_{version}'
-FUNCTION_VERSIONS = [(root, version, get_function_name(root, version)) for root, versions in VERSIONS.items() for version in versions]
+FUNCTION_VERSIONS = [(version, get_function_name(version)) for version in VERSIONS]
+
+
+class NoAliasDumper(SafeDumper):
+ def ignore_aliases(self, data):
+ return True
+
+
+class upgrade_010_to_100:
+ def __init__(self,
+ dico: dict,
+ namespace: str,
+ xmlsrc: str,
+ ) -> None:
+ if FIXME_PRINT_FILE:
+ from pprint import pprint
+ pprint(dico)
+ self.xmlsrc = xmlsrc
+ self.paths = {'family': {}, 'variable': {}}
+ self.lists = {'service': {},
+ 'ip': {},
+ 'certificate': {},
+ 'file': {},
+ }
+ self.flatten_paths = {'family': {}, 'variable': {}}
+ self.variables = self.parse_variables(dico, namespace)
+ self.parse_variables_with_path()
+ self.parse_services(dico)
+ self.parse_constraints(dico)
+ if FIXME_PRINT_FILE:
+ print('==')
+ pprint(self.variables)
+ pprint(self.services)
+
+ def parse_variables(self,
+ family: dict,
+ sub_path: str,
+ ) -> dict:
+ new_families = {}
+ if 'variables' in family:
+ for subelt in family['variables']:
+ for typ, obj in subelt.items():
+ for subobj in obj:
+ getattr(self, f'convert_{typ}')(subobj, new_families, sub_path)
+ family.pop('variables')
+ return new_families
+
+ def convert_family(self,
+ family: dict,
+ new_families: dict,
+ sub_path: str,
+ ) -> None:
+ # name is the key, do not let it in values
+ name = family.pop('name')
+ if sub_path:
+ sub_path = sub_path + '.' + name
+ else:
+ sub_path = name
+ # leadership and dynamic are no more attribute, it's now a type
+ for typ in ['leadership', 'dynamic']:
+ if typ in family:
+ value = family.pop(typ)
+ if value:
+ family['type'] = typ
+ if typ == 'dynamic':
+ family['variable'] = self.get_variable_path(value)
+ # add sub families and sub variables
+ sub_families = self.parse_variables(family, sub_path)
+ for sub_name, sub_family in sub_families.copy().items():
+ if sub_name not in family:
+ continue
+ family[f'_{sub_name}'] = family.pop(sub_name)
+ # store converted family
+ family.update(sub_families)
+ new_families[name] = family
+ self.flatten_paths['family'][name] = sub_path
+ self.paths['family'][sub_path] = family
+
+ def convert_variable(self,
+ variable: dict,
+ new_families: dict,
+ sub_path: str,
+ ) -> dict:
+ name = variable.pop('name')
+ if sub_path:
+ sub_path = sub_path + '.' + name
+ else:
+ sub_path = name
+ new_families[name] = variable
+ self.flatten_paths['variable'][name] = sub_path
+ self.paths['variable'][sub_path] = variable
+ if 'remove_condition' in variable and variable.pop('remove_condition'):
+ if FIXME_PRINT_REMOVE:
+ print(f'variable {name} in file {self.xmlsrc} has remove_condition, all properties (hidden, disabled and mandatory) are set to False')
+ for prop in ['hidden', 'disabled', 'mandatory']:
+ if prop not in variable:
+ variable[prop] = False
+ if 'remove_choice' in variable:
+ if 'choice' not in variable:
+ variable['choice'] = None
+ variable.pop('remove_choice')
+ if 'remove_check' in variable:
+ variable.pop('remove_check')
+ if 'validators' not in variable:
+ variable['validators'] = None
+ if 'remove_fill' in variable:
+ variable.pop('remove_fill')
+ variable['value'] = None
+ if 'auto_freeze' in variable:
+ variable.pop('auto_freeze')
+ if 'test' in variable:
+ tests = []
+ for test in variable['test'].split('|'):
+ if test == '':
+ tests.append(None)
+ else:
+ tests.append(CONVERT_OPTION.get(variable.get('type', 'string'), {}).get('func', str)(test))
+ variable['test'] = tests
+
+ def parse_variables_with_path(self):
+ for variable in self.paths['variable'].values():
+ if 'value' in variable:
+ default = variable.pop('value')
+ if default is not None:
+ if not variable.get('multi', False) and len(default) == 1:
+ variable['default'] = self.get_value(default[0])
+ else:
+ variable['default'] = [self.get_value(value) for value in default]
+ if 'choice' in variable:
+ if not variable['choice']:
+ variable['choices'] = variable.pop('choice')
+ else:
+ variable['choices'] = [self.get_value(choice) for choice in variable.pop('choice')]
+
+ def parse_services(self,
+ dico: dict,
+ ) -> None:
+ self.services = {}
+ if 'services' in dico:
+ for root_services in dico['services']:
+ for services in root_services.values():
+ for service in services:
+ new_service = {}
+ for typ in ['ip', 'file', 'certificate']:
+ if typ != 'ip':
+ typ_plurial = typ + 's'
+ else:
+ typ_plurial = typ
+ if typ in service:
+ new_service[typ_plurial] = {}
+ for elt in service[typ]:
+ name, new_elt = getattr(self, f'parse_{typ}')(elt)
+ new_service[typ_plurial][name] = new_elt
+ if 'override' in service:
+ if isinstance(service['override'], list):
+ new_service['override'] = service['override'][0]
+ else:
+ new_service['override'] = service['override']
+ if 'servicelist' in service:
+ self.lists['service'].setdefault(service['servicelist'], []).append(new_service)
+ name = service.pop('name') + '.' + service.get('type', 'service')
+ self.services[name] = new_service
+
+ def parse_ip(self,
+ ip: dict
+ ) -> None:
+ name = self.get_variable_path(ip.pop('text'))
+ if 'iplist' in ip:
+ self.lists['ip'].setdefault(ip.pop('iplist'), []).append(ip)
+ if 'netmask' in ip:
+ ip['netmask'] = self.get_variable_path(ip['netmask'])
+ return name, ip
+
+ def parse_file(self,
+ file: dict
+ ) -> None:
+ name = file.pop('text')
+ if 'file_type' in file:
+ file['type'] = file.pop('file_type')
+ if file['type'] == 'variable':
+ name = self.get_variable_path(name)
+ if 'variable_type' in file:
+ file.pop('variable_type')
+ if 'filelist' in file:
+ self.lists['file'].setdefault(file.pop('filelist'), []).append(file)
+ for typ in ['source', 'owner', 'group']:
+ if f'{typ}_type' in file:
+ obj_type = file.pop(f'{typ}_type')
+ if obj_type == 'variable' and typ in file:
+ file[typ] = {'name': self.get_variable_path(file[typ]),
+ 'type': 'variable',
+ }
+ if 'variable' in file:
+ file['variable'] = self.get_variable_path(file['variable'])
+ return name, file
+
+ def parse_certificate(self,
+ certificate: dict
+ ) -> None:
+ name = certificate.pop('text')
+ if 'variable' in certificate:
+ certificate['rougail_variable'] = certificate['variable']
+ if 'certificate_type' in certificate:
+ if certificate.pop('certificate_type') == 'variable':
+ certificate['variable'] = True
+ name = self.get_variable_path(name)
+ if 'certificatelist' in certificate:
+ self.lists['certificate'].setdefault(certificate.pop('certificatelist'), []).append(certificate)
+ for typ in ['owner', 'group', 'server', 'domain', 'provider']:
+ if f'{typ}_type' in certificate:
+ obj_type = certificate.pop(f'{typ}_type')
+ if obj_type == 'variable' and typ in certificate:
+ certificate[typ] = {'name': self.get_variable_path(certificate[typ]),
+ 'type': 'variable',
+ }
+ return name, certificate
+
+ def parse_constraints(self,
+ dico: dict,
+ ) -> None:
+ if 'constraints' not in dico:
+ return
+ for constraint in dico['constraints']:
+ if 'condition' in constraint:
+ for condition in constraint['condition']:
+ self.parse_condition(condition)
+ if 'check' in constraint:
+ for check in constraint['check']:
+ self.parse_check(check)
+ if 'fill' in constraint:
+ for fill in constraint['fill']:
+ self.parse_fill(fill)
+
+ def parse_condition(self,
+ condition: dict,
+ ) -> None:
+ if 'apply_on_fallback' in condition:
+ apply_on_fallback = condition.pop('apply_on_fallback')
+ else:
+ apply_on_fallback = False
+ source = self.get_variable_path(condition['source'])
+ if not source:
+ source = f'__{condition["source"]}'
+ name = condition.pop('name')
+ prop = name.split('_', 1)[0]
+ if apply_on_fallback:
+ condition_value = True
+ else:
+ condition_value = self.params_condition_to_jinja(source, condition['param'], name.endswith('if_in'))
+ for target in condition['target']:
+ typ = target.get('type', 'variable')
+ if typ == 'variable':
+ variable_path = self.get_variable_path(target['text'])
+ if variable_path is None:
+ if FIXME_PRINT_UNKNOWN_VAR and not target.get('optional', False):
+ print(f'pffff la target {target["text"]} de la condition n\'est pas trouvable')
+ continue
+ variable = self.paths['variable'][variable_path]
+ variable[prop] = condition_value
+ elif typ == 'family':
+ family_path = self.get_family_path(target['text'])
+ if family_path is None:
+ if FIXME_PRINT_UNKNOWN_VAR and not target.get('optional', False):
+ print(f'pffff la target {target["text"]} de la condition n\'est pas trouvable')
+ continue
+ family = self.paths['family'][family_path]
+ family[prop] = condition_value
+ elif typ == 'iplist':
+ list_name = target['text']
+ if list_name in self.lists['ip']:
+ for ip in self.lists['ip'].pop(list_name):
+ ip[prop] = condition_value
+ elif typ == 'filelist':
+ list_name = target['text']
+ if list_name in self.lists['file']:
+ for ip in self.lists['file'].pop(list_name):
+ ip[prop] = condition_value
+ elif typ == 'servicelist':
+ list_name = target['text']
+ if list_name in self.lists['service']:
+ for service in self.lists['service'].pop(list_name):
+ service[prop] = condition_value
+ elif typ == 'certificatelist':
+ list_name = target['text']
+ if list_name in self.lists['certificate']:
+ for certificat in self.lists['certificate'].pop(list_name):
+ certificat[prop] = condition_value
+
+ def parse_check(self,
+ check: dict,
+ ) -> None:
+ for target in check['target']:
+ variable_path = self.get_variable_path(target['text'])
+ if variable_path is None:
+ if FIXME_PRINT_UNKNOWN_VAR and not target.get('optional', False):
+ print(f'pffff la target {target["text"]} dans le check n\'est pas trouvable')
+ continue
+ variable = self.paths['variable'][variable_path]
+ if 'validators' in variable and variable['validators'] is None:
+ variable.pop('validators')
+ if check.get('type') == 'jinja':
+ check_value = check['name']
+ else:
+ check['param'] = [{'text': variable_path, 'type': 'variable'}] + check.get('param', [])
+ check_value = self.convert_param_function(check)
+ variable.setdefault('validators', []).append(check_value)
+
+ def parse_fill(self,
+ fill: dict,
+ ) -> None:
+ for target in fill.pop('target'):
+ params = []
+ variable_path = self.get_variable_path(target['text'])
+ if variable_path is None:
+ if FIXME_PRINT_UNKNOWN_VAR and not target.get('optional', False):
+ print(f'pffff la target {target["text"]} dans le fill n\'est pas trouvable')
+ continue
+ variable = self.paths['variable'][variable_path]
+ if fill.get('type') == 'jinja':
+ fill_value = {'type': 'jinja',
+ 'jinja': fill['name'],
+ }
+ else:
+ fill_value = self.convert_param_function(fill)
+ variable['default'] = fill_value
+
+ def params_condition_to_jinja(self,
+ path: str,
+ params: List[dict],
+ if_in: bool,
+ ) -> str:
+ new_params = {}
+ jinja = "{% if "
+ for idx, param in enumerate(params):
+ if idx:
+ jinja += ' or '
+
+ new_param, value = self.get_jinja_param_and_value(param)
+ if value:
+ jinja += path + ' == ' + value
+ if new_param:
+ new_params |= new_param
+ if if_in:
+ jinja += " %}true{% else %}false{% endif %}"
+ else:
+ jinja += " %}false{% else %}true{% endif %}"
+ ret = {'type': 'jinja',
+ 'jinja': jinja,
+ }
+ if new_params:
+ ret['params'] = new_params
+ return ret
+
+ def get_value(self,
+ param: dict,
+ ) -> Any:
+ #
+ typ = param.get('type', 'string')
+ if typ == 'string':
+ value = param['text']
+# value = dumps(value, ensure_ascii=False)
+ elif typ == 'number':
+ value = int(param['text'])
+ elif typ == 'nil':
+ value = None
+ elif typ == 'space':
+ value = ' '
+ elif typ == 'boolean':
+ value = param['text']
+ elif typ == 'variable':
+ variable_path = self.get_variable_path(param['text'])
+ if variable_path is None:
+ variable_path = '__' + param['text']
+ value = {'type': 'variable',
+ 'variable': variable_path,
+ }
+ if 'optional' in param:
+ value['optional'] = param['optional']
+ if 'propertyerror' in param:
+ value['propertyerror'] = param['propertyerror']
+ elif typ == 'function':
+ value = self.convert_param_function(param)
+ elif typ == 'information':
+ value = {'type': 'information',
+ 'information': param['text'],
+ }
+ if 'variable' in param:
+ variable_path = self.get_variable_path(param['variable'])
+ value['variable'] = variable_path
+ elif typ == 'suffix':
+ value = param
+ elif typ == 'index':
+ value = param
+ return value
+
+ def get_jinja_param_and_value(self,
+ param,
+ ) -> Tuple[list, Any]:
+ new_param = None
+ typ = param.get('type', 'string')
+ value = self.get_value(param)
+ if isinstance(value, dict):
+ if typ == 'information':
+ key = normalize_family(value['information'])
+ if 'variable' in value:
+ attr_name = f'{value["variable"]}.{key}'
+ else:
+ attr_name = key
+ attr_name = f'__information.{attr_name}'
+ new_param = {attr_name: value}
+ value = attr_name
+ elif typ in ['index', 'suffix']:
+ attr_name = f'__{typ}'
+ new_param = {attr_name: value}
+ value = attr_name
+ elif 'propertyerror' in param or 'optional' in param:
+ attr_name = value['variable']
+ new_param = {attr_name: value}
+ value = value[typ]
+ else:
+ value = value[typ]
+ if not value:
+ return
+ else:
+ value = dumps(value, ensure_ascii=False)
+ return new_param, value
+
+
+ def convert_param_function(self,
+ param: dict,
+ ) -> str:
+ text = param['name']
+ params = {}
+ if 'param' in param and param['param']:
+ first, *others = param['param']
+ new_param, first = self.get_jinja_param_and_value(first)
+ text = f'{first} | {text}'
+ if new_param:
+ params |= new_param
+ if others:
+ values = []
+ for param in others:
+ new_param, value= self.get_jinja_param_and_value(param)
+ if new_param:
+ params |= new_param
+# if param.get('type') != 'variable' or value is not None:
+ if 'name' in param:
+ values.append(f'{param["name"]}={value}')
+ else:
+ values.append(value)
+ text += '('
+ text += ', '.join(values)
+ text += ')'
+ else:
+ text += '()'
+ text = '{{ ' + text + ' }}'
+ ret = {'type': 'jinja', 'jinja': text}
+ if params:
+ ret['params'] = params
+ return ret
+
+ def get_variable_path(self,
+ path: str,
+ ) -> dict:
+ if path not in self.paths['variable'] and path in self.flatten_paths['variable']:
+ path = self.flatten_paths['variable'][path]
+ if path not in self.paths['variable']:
+ if FIXME_PRINT_UNKNOWN_VAR:
+ print('pffff impossible de trouver la variable', path)
+ return
+ return path
+
+ def get_family_path(self,
+ path: str,
+ ) -> dict:
+ if path not in self.paths['family'] and path in self.flatten_paths['family']:
+ path = self.flatten_paths['family'][path]
+ if path not in self.paths['family']:
+ if FIXME_PRINT_UNKNOWN_VAR:
+ print('pffff impossible de trouver la famille', path)
+ return
+ return path
+
+ def get(self) -> dict:
+ return self.variables, self.services
class RougailUpgrade:
@@ -64,57 +559,238 @@ class RougailUpgrade:
rougailconfig = RougailConfig
self.rougailconfig = rougailconfig
- def load_xml_from_folders(self,
- srcfolder: str,
- dstfolder: str,
- namespace: str,
- display: bool=True,
- ):
- """Loads all the XML files located in the xmlfolders' list
+ def load_dictionaries(self,
+# srcfolder: str,
+ dstfolder: str,
+ services_dstfolder: Optional[str],
+ extra_dstfolder: Optional[str]=None,
+# namespace: str,
+# display: bool=True,
+ ):
+ if extra_dstfolder is None:
+ extra_dstfolder = dstfolder
+ self._load_dictionaries(self.rougailconfig['dictionaries_dir'],
+ dstfolder,
+ services_dstfolder,
+ self.rougailconfig['variable_namespace'],
+ )
+ for namespace, extra_dirs in self.rougailconfig['extra_dictionaries'].items():
+ extra_dstsubfolder = join(extra_dstfolder, namespace)
+ if not isdir(extra_dstsubfolder):
+ makedirs(extra_dstsubfolder)
+ for extra_dir in extra_dirs:
+ self._load_dictionaries(extra_dir,
+ extra_dstsubfolder,
+ None,
+ namespace,
+ )
- :param xmlfolders: list of full folder's name
- """
- filenames = [filename for filename in listdir(srcfolder) if filename.endswith('.xml')]
+ def _load_dictionaries(self,
+ srcfolder: str,
+ dstfolder: str,
+ services_dstfolder: Optional[str],
+ namespace: str,
+ ) -> None:
+ filenames = [filename for filename in listdir(srcfolder) if filename.endswith('.xml') or filename.endswith('.yml')]
filenames.sort()
for filename in filenames:
- xmlsrc = join(srcfolder, filename)
- xmldst = join(dstfolder, filename)
- if isfile(xmldst):
+ xmlsrc = Path(srcfolder) / Path(filename)
+ ymlfile = filename[:-3] + 'yml'
+ xmldst = Path(dstfolder) / Path(ymlfile)
+ if xmldst.is_file():
raise Exception(f'cannot update "{xmlsrc}" destination file "{xmldst}" already exists')
- try:
- parser = XMLParser(remove_blank_text=True)
- document = parse(xmlsrc, parser)
- except XMLSyntaxError as err:
- raise Exception(_(f'not a XML file: {err}')) from err
- root = document.getroot()
- search_function_name = get_function_name(root.tag, root.attrib.get('version', '1'))
+ if services_dstfolder:
+ ymldst_services = Path(services_dstfolder) / ymlfile
+ if ymldst_services.is_file():
+ raise Exception(f'cannot update "{xmlsrc}" destination file "{ymldst_services}" already exists')
+ if filename.endswith('.xml'):
+ try:
+ parser = XMLParser(remove_blank_text=True)
+ document = parse(xmlsrc, parser)
+ except XMLSyntaxError as err:
+ raise Exception(_(f'not a XML file: {err}')) from err
+ root = document.getroot()
+ search_function_name = get_function_name(root.attrib.get('version', '1'))
+ ext = 'xml'
+ else:
+ with xmlsrc.open() as xml_fh:
+ root = safe_load(xml_fh)
+ search_function_name = get_function_name(root['version'])
+ ext = 'yml'
function_found = False
- for root_name, version, function_version in FUNCTION_VERSIONS:
+ if FIXME_PRINT_FILENAME:
+ print('========================================================================')
+ print(xmlsrc)
+ print('========================================================================')
+ for version, function_version in FUNCTION_VERSIONS:
if function_found and hasattr(self, function_version):
- if display:
- print(f' - convert {filename} to version {version}')
+# if display:
+# print(f' - convert {filename} to version {version}')
upgrade_help = self.upgrade_help.get(function_version, {}).get(filename, {})
if upgrade_help.get('remove') is True:
continue
- root = getattr(self, function_version)(root, upgrade_help, namespace)
+ root, root_services, new_type = getattr(self, function_version)(root, upgrade_help, namespace, xmlsrc, ext)
if function_version == search_function_name:
function_found = True
- root.attrib['version'] = version
- with open(xmldst, 'wb') as xmlfh:
- xmlfh.write(tostring(root, pretty_print=True, encoding="UTF-8", xml_declaration=True))
- # if
+ if root:
+ root['version'] = version
+ xmldst.parent.mkdir(parents=True, exist_ok=True)
+ with xmldst.open('w') as ymlfh:
+ dump(root, ymlfh, allow_unicode=True, sort_keys=False, Dumper=NoAliasDumper)
+ if root_services and services_dstfolder:
+ root_services['version'] = version
+ ymldst_services.parent.mkdir(parents=True, exist_ok=True)
+ with ymldst_services.open('w') as ymlfh:
+ dump(root_services, ymlfh, allow_unicode=True, sort_keys=False, Dumper=NoAliasDumper)
# if not self.dtd.validate(document):
# dtd_error = self.dtd.error_log.filter_from_errors()[0]
# msg = _(f'not a valid XML file: {dtd_error}')
# raise DictConsistencyError(msg, 43, [xmlfile])
# yield xmlfile, document.getroot()
+ def _attribut_to_bool(self, variable):
+ for prop in ['mandatory', 'hidden', 'redefine', 'multi', 'leadership', 'optional', 'unique', 'auto_save', 'remove_check', 'manage', 'exists', 'disabled', 'undisable', 'remove_choice', 'propertyerror', 'apply_on_fallback', 'remove_fill', 'remove_condition']:
+ if prop in variable:
+ variable[prop] = {'True': True, 'False': False}[variable[prop]]
- def update_rougail_0_10(self,
- root: 'Element',
- upgrade_help: dict,
- namespace: str,
- ) -> 'Element':
+ def _attribut_to_int(self, variable):
+ for prop in ['mode']:
+ if prop in variable:
+ try:
+ variable[prop] = int(variable[prop])
+ except ValueError:
+ pass
+
+ def _xml_to_yaml(self, objects, obj_name, variables, path, variable_type='string', variable_choices=[]):
+ if obj_name in ['variables', 'family']:
+ dico = []
+ else:
+ dico = {}
+ for obj in objects:
+ obj_type = obj.tag
+ if not isinstance(obj_type, str):
+ # doesn't proceed the XML commentaries
+ continue
+ new_dico = dict(obj.attrib)
+ if obj_type in ['variable', 'family']:
+ if path:
+ path += '.' + obj.attrib['name']
+ else:
+ path = obj.attrib['name']
+ choices = []
+ if obj_type == 'variable':
+ var_type = obj.attrib.get('type', 'string')
+ variables[obj.attrib['name']]= {'type': var_type}
+ variables[path]= {'type': var_type}
+ elif obj_type == 'condition':
+ var_type = variables.get(obj.attrib['source'], {}).get('type', 'string')
+ if var_type == 'choice':
+ choices = variables.get(obj.attrib['source'], {}).get('choices', [])
+ else:
+ var_type = None
+ new_objects = self._xml_to_yaml(obj, obj.tag, variables, path, var_type, choices)
+ if obj.text:
+ text = obj.text
+ if isinstance(text, str):
+ text = text.strip()
+ if text:
+ if obj_type in ['choice', 'value']:
+ value_type = obj.attrib.get('type')
+ if not value_type and obj_type == 'value':
+ value_type = variable_type
+ text = CONVERT_OPTION.get(value_type, {}).get('func', str)(text)
+ if obj_type == 'choice':
+ variables[path.rsplit('.', 1)[-1]].setdefault('choices', []).append({'type': value_type, 'value': text})
+ variables[path].setdefault('choices', []).append({'type': value_type, 'value': text})
+ if obj_type in ['param', 'value']:
+ if obj.attrib.get('type') == 'variable':
+ var_type = variables.get(obj.attrib.get('name'), {}).get('type', 'string')
+ value_type = obj.attrib.get('type', var_type)
+ text = CONVERT_OPTION.get(value_type, {}).get('func', str)(text)
+ elif 'type' in obj.attrib:
+ var_type = obj.attrib.get('type')
+ text = CONVERT_OPTION.get(var_type, {}).get('func', str)(text)
+ elif obj_type == 'param' and variable_type:
+ if variable_type == 'choice':
+ for choice in variable_choices:
+ if choice['value'] == CONVERT_OPTION.get(choice.get('type'), {}).get('func', str)(text):
+ text = choice['value']
+ break
+ else:
+ text = CONVERT_OPTION.get(variable_type, {}).get('func', str)(text)
+ new_dico['text'] = text
+ if isinstance(new_objects, list):
+ if new_objects:
+ for new_obj in new_objects:
+ new_dico.update(new_obj)
+ elif new_objects is not None and list(new_objects.values())[0]:
+ new_dico.update(new_objects)
+ self._attribut_to_bool(new_dico)
+ self._attribut_to_int(new_dico)
+ if not new_dico:
+ new_dico = None
+ if obj_type == 'override' and not new_dico:
+ new_dico = None
+ if isinstance(dico, list):
+ if dico and obj_type in dico[-1]:
+ dico[-1][obj_type].append(new_dico)
+ else:
+ dico.append({obj_type: [new_dico]})
+ elif new_dico is None:
+ dico[obj_type] = new_dico
+ else:
+ dico.setdefault(obj_type, []).append(new_dico)
+ if dico == {}:
+ dico = None
+ elif isinstance(dico, dict):
+ dico = [dico]
+ if obj_name in ['service', 'condition', 'fill', 'choice', 'check']:
+ pass
+ elif obj_name in ['variables', 'family']:
+ dico = {'variables': dico}
+ elif obj_name != 'variable':
+ dico = {obj_name: dico}
+ return dico
+
+ def update_1_0(self,
+ root: 'Element',
+ upgrade_help: dict,
+ namespace: str,
+ xmlsrc: str,
+ ext: str,
+ ) -> 'Element':
+ if ext == 'xml':
+ new_root = {'version': root.attrib['version']}
+ variables = {}
+ for typ in ['services', 'variables', 'constraints']:
+ objects = root.find(typ)
+ if objects is None:
+ objects = []
+ new_objects = self._xml_to_yaml(objects, typ, variables, '')
+ if new_objects[typ]:
+ new_root.update(new_objects)
+# services = root.find('services')
+# if services is None:
+# services = []
+# new_services = self._xml_to_yaml_service(services)
+# if new_services:
+# new_root['services'] = new_services
+# paths = self._get_path_variables(variables,
+# namespace == 'configuration',
+# namespace,
+# )
+ else:
+ new_root = root
+ variables, services = upgrade_010_to_100(new_root, namespace, xmlsrc).get()
+ return variables, services, 'yml'
+
+ def update_0_10(self,
+ root: 'Element',
+ upgrade_help: dict,
+ namespace: str,
+ xmlsrc: str,
+ ext: str,
+ ) -> 'Element':
variables = root.find('variables')
if variables is None:
return root
@@ -267,7 +943,7 @@ class RougailUpgrade:
for target in targets:
if 'remove_choice' not in target.attrib or target.attrib['remove_choice'] != 'True':
target.attrib['type'] = 'choice'
- return root
+ return root, None, 'xml'
def _get_path_variables(self, variables, is_variable_namespace, path, dico=None):
if dico is None:
@@ -286,380 +962,6 @@ class RougailUpgrade:
dico[subpath] = {'variable': variable, 'parent': variables}
return dico
- def update_rougail_0_9(self,
- root: 'Element',
- upgrade_help: dict,
- namespace: str,
- ) -> 'Element':
- # rename root
- root.tag = 'rougail'
- variables_auto_valid_enum = {}
- variables_help = {}
- families_help = {}
- variables = {}
- families = {}
- valid_enums = {}
- current_service = upgrade_help.get('services', {}).get('default', 'unknown')
- files = {current_service: {}}
- ips = {current_service: []}
- servicelists = {}
- test_unknowns_variables = set()
- autos = []
- constraints_obj = None
- for subelement in root:
- if not isinstance(subelement.tag, str):
- # XML comment
- continue
- if subelement.tag == 'family_action':
- root.remove(subelement)
- continue
- for subsubelement in subelement:
- if not isinstance(subsubelement.tag, str):
- # XML comment
- continue
- for subsubsubelement in subsubelement:
- if not isinstance(subsubsubelement.tag, str):
- # XML comment
- continue
- if subsubsubelement.tag == 'variable':
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('remove', []):
- subsubelement.remove(subsubsubelement)
- continue
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('type', {}):
- subsubsubelement.attrib['type'] = upgrade_help['variables']['type'][subsubsubelement.attrib['name']]
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('hidden', {}).get('add', []):
- subsubsubelement.attrib['hidden'] = 'True'
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('hidden', {}).get('remove', []):
- self.remove(subsubsubelement, 'hidden', optional=True)
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('mandatory', {}).get('remove', []):
- self.remove(subsubsubelement, 'mandatory')
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('mandatory', {}).get('add', []):
- subsubsubelement.attrib['mandatory'] = 'True'
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('type', {}):
- subsubsubelement.attrib['type'] = upgrade_help.get('variables', {}).get('type', {})[subsubsubelement.attrib['name']]
- if namespace == 'configuration':
- path = subsubsubelement.attrib['name']
- npath = normalize_family(subsubsubelement.attrib['name'])
- else:
- path = namespace + '.' + subsubelement.attrib['name'] + '.' + subsubsubelement.attrib['name']
- npath = normalize_family(namespace) + '.' + normalize_family(subsubelement.attrib['name']) + '.' + normalize_family(subsubsubelement.attrib['name'])
- variables[path] = subsubsubelement
- variables[npath] = subsubsubelement
- type = subsubsubelement.attrib.get('type')
- if type in ['oui/non', 'yes/no', 'on/off']:
- variables_auto_valid_enum.setdefault(subsubsubelement.attrib['type'], []).append(path)
- del subsubsubelement.attrib['type']
- elif type == 'hostname_strict':
- subsubsubelement.attrib['type'] = 'hostname'
- elif type in ['domain', 'domain_strict']:
- subsubsubelement.attrib['type'] = 'domainname'
- elif type == 'string':
- del subsubsubelement.attrib['type']
- if self.test and subsubsubelement.attrib.get('auto_freeze') == 'True':
- del subsubsubelement.attrib['auto_freeze']
- #if self.test and subsubsubelement.attrib.get('redefine') == 'True':
- # subsubsubelement.attrib['exists'] = 'False'
- # del subsubsubelement.attrib['redefine']
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('redefine', {}).get('remove', {}):
- del subsubsubelement.attrib['redefine']
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('remove_check', []):
- subsubsubelement.attrib['remove_check'] = 'True'
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('mode', {}).get('modify', {}):
- subsubsubelement.attrib['mode'] = upgrade_help.get('variables', {}).get('mode', {}).get('modify', {})[subsubsubelement.attrib['name']]
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('type', {}).get('modify', {}):
- subsubsubelement.attrib['type'] = upgrade_help.get('variables', {}).get('type', {}).get('modify', {})[subsubsubelement.attrib['name']]
- type = subsubsubelement.attrib['type']
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('test', {}):
- subsubsubelement.attrib['test'] = upgrade_help.get('variables', {}).get('test', {})[subsubsubelement.attrib['name']]
- if subsubsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('remove_value', []):
- for value in subsubsubelement:
- subsubsubelement.remove(value)
- if subsubsubelement.attrib['name'] != normalize_family(subsubsubelement.attrib['name']):
- if "description" not in subsubsubelement.attrib:
- subsubsubelement.attrib['description'] = subsubsubelement.attrib['name']
- subsubsubelement.attrib['name'] = normalize_family(subsubsubelement.attrib['name'])
- elif subsubsubelement.tag == 'param':
- if subsubelement.tag == 'check' and subsubelement.attrib['target'] in upgrade_help.get('check', {}).get('remove', []):
- continue
- type = subsubsubelement.attrib.get('type')
- if type == 'eole':
- subsubsubelement.attrib['type'] = 'variable'
- type = 'variable'
- if type == 'python':
- subsubsubelement.attrib['type'] = 'function'
- if subsubsubelement.text.startswith('range('):
- func_ast = ast_parse(subsubsubelement.text)
- subsubsubelement.text = 'range'
- for arg in func_ast.body[0].value.args:
- SubElement(subsubelement, 'param', type='number').text = str(arg.value)
- else:
- raise Exception(f'{subsubsubelement.text} is not a supported function')
- type = 'function'
- elif type in ('container', 'context'):
- raise UpgradeError(_(f'cannot convert param with type "{type}"'))
- if subsubelement.attrib['name'] == 'valid_entier' and not 'type' in subsubsubelement.attrib:
- subsubsubelement.attrib['type'] = 'number'
- if (not type or type == 'variable') and subsubsubelement.text in upgrade_help.get('variables', {}).get('remove', []):
- subsubelement.remove(subsubsubelement)
- continue
- if subsubelement.attrib['name'] == 'valid_enum' and not type:
- if subsubsubelement.attrib.get('name') == 'checkval':
- if subsubelement.attrib['target'] in upgrade_help.get('check', {}).get('valid_enums', {}).get('checkval', {}).get('remove', []):
- subsubelement.remove(subsubsubelement)
- continue
- raise UpgradeError(_('checkval in valid_enum is no more supported'))
- if subsubsubelement.text.startswith('['):
- for val in eval(subsubsubelement.text):
- SubElement(subsubelement, 'param').text = str(val)
- subsubelement.remove(subsubsubelement)
- self.move(subsubsubelement, 'hidden', 'propertyerror', optional=True)
- if type == 'variable' and subsubsubelement.text in upgrade_help.get('variables', {}).get('rename', []):
- subsubsubelement.text = upgrade_help.get('variables', {}).get('rename', [])[subsubsubelement.text]
- up = upgrade_help.get('params', {}).get(subsubsubelement.text)
- if up:
- if 'text' in up:
- subsubsubelement.text = up['text']
- if 'type' in up:
- subsubsubelement.attrib['type'] = up['type']
- elif subsubsubelement.tag == 'target':
- type = subsubsubelement.attrib.get('type')
- if type in ['service_accesslist', 'service_restrictionlist', 'interfacelist', 'hostlist']:
- subsubelement.remove(subsubsubelement)
- elif (not type or type == 'variable') and subsubsubelement.text in upgrade_help.get('variables', {}).get('remove', []):
- subsubelement.remove(subsubsubelement)
- elif type == 'family' and subsubsubelement.text in upgrade_help.get('families', {}).get('remove', []):
- subsubelement.remove(subsubsubelement)
- elif type == 'actionlist':
-# for family in root.find('variables'):
-# family_list = SubElement(subsubelement, 'target')
-# family_list.attrib['type'] = 'family'
-# family_list.text = namespace + '.' + family.attrib['name']
- subsubelement.remove(subsubsubelement)
- if upgrade_help.get('targets', {}).get(subsubsubelement.text, {}).get('optional'):
- subsubsubelement.attrib['optional'] = upgrade_help.get('targets', {}).get(subsubsubelement.text, {}).get('optional')
- has_target = False
- for target in subsubelement:
- if target.tag == 'target':
- has_target = True
- break
- if not has_target:
- subelement.remove(subsubelement)
- continue
- elif subsubsubelement.tag == 'slave':
- if subsubsubelement.text in upgrade_help.get('variables', {}).get('remove', []):
- subsubelement.remove(subsubsubelement)
- continue
- subsubsubelement.tag = 'follower'
- subsubsubelement.text = normalize_family(subsubsubelement.text)
- if subelement.tag == 'containers':
- current_service = self.upgrade_container(subsubsubelement, current_service, files, ips, servicelists, upgrade_help)
- subsubelement.remove(subsubsubelement)
- if subelement.tag == 'help':
- if subsubelement.tag == 'variable':
- if not subsubelement.attrib['name'] in upgrade_help.get('variables', {}).get('remove', []):
- variables_help[subsubelement.attrib['name']] = subsubelement.text
- elif subsubelement.tag == 'family':
- if subsubelement.attrib['name'] not in upgrade_help.get('families', {}).get('remove', []):
- families_help[subsubelement.attrib['name']] = subsubelement.text
- else:
- raise Exception(f'unknown help tag {subsubelement.tag}')
- subelement.remove(subsubelement)
- continue
- if subsubelement.tag == 'auto':
- if subsubelement.attrib['target'] in upgrade_help.get('variables', {}).get('remove', []):
- subelement.remove(subsubelement)
- continue
- autos.append(subsubelement.attrib['target'])
- subsubelement.tag = 'fill'
- if subsubelement.tag in ['fill', 'check']:
- if subsubelement.tag == 'check' and subsubelement.attrib['name'] == 'valid_enum':
- if subsubelement.attrib['target'] in upgrade_help.get('variables', {}).get('remove', []):
- subelement.remove(subsubelement)
- continue
- params = []
- for param in subsubelement:
- if param.tag == 'param':
- params.append(param.text)
- key = '~'.join(params)
- if key in valid_enums:
- SubElement(valid_enums[key], 'target').text = subsubelement.attrib['target']
- subelement.remove(subsubelement)
- continue
- valid_enums['~'.join(params)] = subsubelement
- if subsubelement.tag == 'fill' and subsubelement.attrib['target'] in upgrade_help.get('fills', {}).get('remove', []):
- subelement.remove(subsubelement)
- continue
- if subsubelement.tag == 'check' and subsubelement.attrib['target'] in upgrade_help.get('check', {}).get('remove', []):
- subelement.remove(subsubelement)
- continue
- if subsubelement.attrib['target'] in upgrade_help.get('variables', {}).get('remove', []):
- subelement.remove(subsubelement)
- continue
- if subsubelement.attrib['name'] == 'valid_networknetmask':
- subsubelement.attrib['name'] = 'valid_network_netmask'
- target = SubElement(subsubelement, 'target')
- target.text = subsubelement.attrib['target']
- if self.test:
- target.attrib['optional'] = 'True'
- del subsubelement.attrib['target']
- elif subsubelement.tag == 'separators':
- subelement.remove(subsubelement)
- elif subsubelement.tag == 'condition':
- if subsubelement.attrib['source'] in upgrade_help.get('variables', {}).get('remove', []):
- try:
- subelement.remove(subsubelement)
- except:
- pass
- else:
- if subsubelement.attrib['name'] == 'hidden_if_not_in':
- subsubelement.attrib['name'] = 'disabled_if_not_in'
- if subsubelement.attrib['name'] == 'hidden_if_in':
- subsubelement.attrib['name'] = 'disabled_if_in'
- if subsubelement.attrib['name'] == 'frozen_if_in':
- subsubelement.attrib['name'] = 'hidden_if_in'
- self.move(subsubelement, 'fallback', 'optional', optional='True')
- if subsubelement.attrib['source'] in upgrade_help.get('variables', {}).get('rename', []):
- subsubelement.attrib['source'] = upgrade_help.get('variables', {}).get('rename', [])[subsubelement.attrib['source']]
- elif subsubelement.tag == 'group':
- if subsubelement.attrib['master'] in upgrade_help.get('groups', {}).get('remove', []):
- subelement.remove(subsubelement)
- else:
- self.move(subsubelement, 'master', 'leader')
- for follower in subsubelement:
- if '.' in subsubelement.attrib['leader']:
- path = subsubelement.attrib['leader'].rsplit('.', 1)[0] + '.' + follower.text
- else:
- path = follower.text
- self.remove(variables[path], 'multi', optional=True)
- if subsubelement.attrib['leader'] in upgrade_help.get('groups', {}).get('reorder', {}):
- for follower in subsubelement:
- subsubelement.remove(follower)
- for follower in upgrade_help.get('groups', {}).get('reorder', {})[subsubelement.attrib['leader']]:
- SubElement(subsubelement, 'follower').text = follower
- if subelement.tag == 'files':
- current_service = self.upgrade_container(subsubelement, current_service, files, ips, servicelists, upgrade_help)
- subelement.remove(subsubelement)
- if subsubelement.tag == 'family':
- self.remove(subsubelement, 'icon', optional=True)
- if subsubelement.attrib['name'] in upgrade_help.get('families', {}).get('mode', {}).get('remove', []) and 'mode' in subsubelement.attrib:
- del subsubelement.attrib['mode']
- if subsubelement.attrib['name'] in upgrade_help.get('families', {}).get('rename', {}):
- subsubelement.attrib['name'] = upgrade_help.get('families', {}).get('rename', {})[subsubelement.attrib['name']]
- if subsubelement.attrib['name'] in upgrade_help.get('families', {}).get('remove', []):
- subelement.remove(subsubelement)
- continue
- if subsubelement.attrib['name'] in upgrade_help.get('families', {}).get('hidden', {}).get('add', []):
- subsubelement.attrib['hidden'] = 'True'
- if subsubelement.attrib['name'] != normalize_family(subsubelement.attrib['name']):
- if "description" not in subsubelement.attrib:
- subsubelement.attrib['description'] = subsubelement.attrib['name']
- subsubelement.attrib['name'] = normalize_family(subsubelement.attrib['name'])
- families[subsubelement.attrib['name']] = subsubelement
- # if empty, remove
- if is_empty(subelement) or subelement.tag in ['containers', 'files', 'help']:
- root.remove(subelement)
- continue
- # copy subelement
- if subelement.tag == 'constraints':
- constraints_obj = subelement
- services = None
- service_elt = {}
- for variable, obj in upgrade_help.get('variables', {}).get('add', {}).items():
- family = next(iter(families.values()))
- variables[variable] = SubElement(family, 'variable', name=variable)
- if 'value' in obj:
- SubElement(variables[variable], 'value').text = obj['value']
- for name in ['hidden', 'exists']:
- if name in obj:
- variables[variable].attrib[name] = obj[name]
- files_is_empty = True
- for lst in files.values():
- if len(lst):
- files_is_empty = False
- break
- if not files_is_empty:
- services = Element('services')
- root.insert(0, services)
- for service_name, lst in files.items():
- service = self.create_service(services, service_name, service_elt, servicelists, upgrade_help)
- for file_ in lst.values():
- self.move(file_, 'name_type', 'file_type', optional=True)
- if 'file_type' in file_.attrib and file_.attrib['file_type'] == 'SymLinkOption':
- file_.attrib['file_type'] = 'variable'
- if variables[file_.text].attrib['type'] == 'string':
- variables[file_.text].attrib['type'] = 'filename'
- self.remove(file_, 'rm', optional=True)
- self.remove(file_, 'mkdir', optional=True)
- service.append(file_)
- ips_is_empty = True
- for lst in ips.values():
- if len(lst):
- ips_is_empty = False
- break
- if not ips_is_empty:
- if services is None:
- services = Element('services')
- root.insert(0, services)
- for service_name, lst in ips.items():
- service = self.create_service(services, service_name, service_elt, servicelists, upgrade_help)
- for ip in lst:
- if ip.text in upgrade_help.get('ips', {}).get('remove', []):
- continue
- for type in ['ip_type', 'netmask_type']:
- if type in ip.attrib and ip.attrib[type] == 'SymLinkOption':
- ip.attrib[type] = 'variable'
- if 'netmask' in ip.attrib:
- if ip.attrib['netmask'] == '255.255.255.255':
- del ip.attrib['netmask']
- if ip.text in variables and 'type' not in variables[ip.text].attrib:
- variables[ip.text].attrib['type'] = 'ip'
- else:
- if ip.text in variables and 'type' not in variables[ip.text].attrib:
- variables[ip.text].attrib['type'] = 'network'
- if ip.attrib['netmask'] in variables and 'type' not in variables[ip.attrib['netmask']].attrib:
- variables[ip.attrib['netmask']].attrib['type'] = 'netmask'
- elif ip.text in variables and 'type' not in variables[ip.text].attrib:
- variables[ip.text].attrib['type'] = 'ip'
- self.remove(ip, 'interface')
- self.remove(ip, 'interface_type', optional=True)
- self.remove(ip, 'service_restrictionlist', optional=True)
- service.append(ip)
- if ips_is_empty and files_is_empty:
- for service_name in files:
- if services is None:
- services = Element('services')
- root.insert(0, services)
- if service_name != 'unknown':
- self.create_service(services, service_name, service_elt, servicelists, upgrade_help)
- if constraints_obj is None:
- constraints_obj = SubElement(root, 'constraints')
- if variables_auto_valid_enum:
- for type, variables_valid_enum in variables_auto_valid_enum.items():
- valid_enum = SubElement(constraints_obj, 'check')
- valid_enum.attrib['name'] = 'valid_enum'
- for val in type.split('/'):
- param = SubElement(valid_enum, 'param')
- param.text = val
- for variable in variables_valid_enum:
- target = SubElement(valid_enum, 'target')
- target.text = variable
- for name, text in variables_help.items():
- variables[name].attrib['help'] = text
- for name, text in families_help.items():
- if name in upgrade_help.get('families', {}).get('rename', {}):
- name = upgrade_help.get('families', {}).get('rename', {})[name]
- families[normalize_family(name)].attrib['help'] = text
- for auto in autos:
- if auto in variables:
- variables[auto].attrib['hidden'] = 'True'
- else:
- # redefine value in first family
- family = next(iter(families.values()))
- variable = SubElement(family, 'variable', name=auto, redefine="True", hidden="True")
- if self.test:
- del variable.attrib['redefine']
- return root
-
@staticmethod
def move(elt, src, dst, optional=False):
if src == 'text':
@@ -699,7 +1001,7 @@ class RougailUpgrade:
service.attrib['servicelist'] = servicelists[service_name]
return service
- def upgrade_container(self, elt, current_service, files, ips, servicelists, upgrade_help):
+ def upgrade_container(self, elt, current_service, files, ip, servicelists, upgrade_help):
if elt.tag == 'file':
self.move(elt, 'name', 'text')
self.remove(elt, 'del_comment', optional=True)
@@ -726,11 +1028,11 @@ class RougailUpgrade:
elt_service = upgrade_help.get('services', {}).get('rename', {})[elt.attrib['service']]
else:
elt_service = elt.attrib['service']
- if elt_service in ips:
+ if elt_service in ip:
service = elt_service
else:
service = current_service
- ips[service].append(restriction)
+ ip[service].append(restriction)
elif elt.tag == 'service':
new_name = elt.text
if current_service == 'unknown':
@@ -738,27 +1040,14 @@ class RougailUpgrade:
raise Exception('hu?')
files[new_name] = files[current_service]
del files[current_service]
- ips[new_name] = ips[current_service]
- del ips[current_service]
+ ip[new_name] = ip[current_service]
+ del ip[current_service]
elif new_name not in files:
files[new_name] = {}
- ips[new_name] = []
+ ip[new_name] = []
current_service = new_name
if 'servicelist' in elt.attrib:
servicelists[current_service] = elt.attrib['servicelist']
else:
raise Exception(f'unknown containers tag {elt.tag}')
return current_service
-
-
-def is_empty(elt, not_check_attrib=False):
- if not not_check_attrib and elt.attrib:
- return False
- empty = True
- for file_ in elt:
- empty = False
- return empty
-
-
-def update_creole_1():
- print('pfff')
diff --git a/src/rougail/utils.py b/src/rougail/utils.py
index 60efff0f5..d5019fb8f 100644
--- a/src/rougail/utils.py
+++ b/src/rougail/utils.py
@@ -27,13 +27,18 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
-from typing import List
+from typing import List, Union
from unicodedata import normalize, combining
import re
from importlib.machinery import SourceFileLoader
from importlib.util import spec_from_loader, module_from_spec
+from jinja2 import DictLoader, TemplateSyntaxError
+from jinja2.sandbox import SandboxedEnvironment
+from jinja2.parser import Parser
+from jinja2.nodes import Getattr
+
from .i18n import _
from .error import DictConsistencyError
@@ -69,3 +74,250 @@ def load_modules(eosfunc_file) -> List[str]:
eosfunc = module_from_spec(spec)
loader.exec_module(eosfunc)
return eosfunc
+
+
+def get_realpath(path: str,
+ path_prefix: str,
+ ) -> str:
+ if path_prefix:
+ return f'{path_prefix}.{path}'
+ return path
+
+
+def get_jinja_variable_to_param(jinja_text,
+ objectspace,
+ xmlfiles,
+ functions,
+ path_prefix,
+ ):
+ try:
+ env = SandboxedEnvironment(loader=DictLoader({'tmpl': jinja_text}))
+ env.filters = functions
+ parsed_content = Parser(env, jinja_text, "", "").parse()
+ def recurse_getattr(g: Getattr):
+ if isinstance(g.node, Getattr):
+ return recurse_getattr(g.node) + "." + g.attr
+ return g.node.name + "." + g.attr
+ variables = set()
+ for g in parsed_content.find_all(Getattr):
+ variables.add(recurse_getattr(g))
+ except TemplateSyntaxError as err:
+ msg = _(f'error in jinja "{jinja_text}": {err}')
+ raise Exception(msg) from err
+ variables = list(variables)
+ variables.sort()
+ for variable_path in variables:
+ variable, suffix = objectspace.paths.get_with_dynamic(get_realpath(variable_path, path_prefix))
+ if variable and variable.path in objectspace.variables:
+ yield variable, suffix, variable_path
+
+
+class Calculation:
+ def __init__(self,
+ object_name: str,
+ attribute: str,
+ path: str,
+ datas: Union[dict, List[dict]],
+ filename: str,
+ objectspace: 'RougailConvert',
+ path_prefix: str,
+ inside_list: bool,
+ ) -> None:
+ self.path_prefix = path_prefix
+ if 'type' not in datas:
+ raise Exception(f'the {object_name} "{path}" in "{filename}" must have a "type" attribut for "{attribute}"')
+ self.type = datas.pop('type')
+ self.path = path
+ self.attribute = attribute
+ if self.type != 'suffix':
+ self.value = datas.pop(self.type)
+ if 'params' in datas:
+ if self.type == 'variable':
+ raise Exception('param not allowed with type variable')
+ self.params = datas.pop('params')
+ else:
+ self.params = {}
+ if 'return_type' in datas:
+ self.return_type = datas.pop('return_type')
+ if self.return_type not in objectspace.variable_types:
+ raise Exception(f'unknown "return_type" in {attribute} of variable "{self.path}"')
+ else:
+ self.return_type = None
+ if self.type == 'variable':
+ self.propertyerror = datas.pop('propertyerror', True)
+ if datas:
+ raise Exception('hu.?')
+ self.objectspace = objectspace
+ self.inside_list = inside_list
+
+ def get_realpath(self,
+ path: str,
+ ) -> str:
+ return get_realpath(path, self.path_prefix)
+
+ def change_variable_in_params(self):
+ if self.params:
+ delete_keys = []
+ for key, value in self.params.items():
+ if isinstance(value, dict):
+ if value['type'] == 'variable':
+ variable_path = self.get_realpath(value['variable'])
+ variable, suffix = self.objectspace.paths.get_with_dynamic(variable_path)
+ if variable:
+ if not isinstance(variable, self.objectspace.variable):
+ print("pfff it's a family")
+ self.params[key]['variable'] = variable
+ if suffix:
+ self.params[key]['suffix'] = suffix
+ else:
+ if not value.get('optional'):
+ raise Exception(f'pffff {value["variable"]}')
+ delete_keys.append(key)
+ elif value['type'] == 'information':
+ if 'variable' in value:
+ variable_path = self.get_realpath(value['variable'])
+ value['variable'] = self.objectspace.paths[variable_path]
+ for key in delete_keys:
+ del self.params[key]
+
+
+ def _jinja_to_function(self,
+ function,
+ return_type,
+ multi,
+ *,
+ add_help=False,
+ ):
+ variable = self.objectspace.paths[self.path]
+ jinja_path = f'{self.attribute}_{self.path}'
+ idx = 0
+ while jinja_path in self.objectspace.jinja:
+ jinja_path = f'{self.attribute}_{self.path}_{idx}'
+ idx += 1
+ self.objectspace.jinja[jinja_path] = self.value
+ default = {'function': function,
+ 'params': {'__internal_jinja': jinja_path,
+ '__internal_type': return_type,
+ '__internal_multi': multi,
+ }
+ }
+ if add_help:
+ default['help'] = function + '_help'
+ if self.params:
+ default['params'] |= self.params
+ for sub_variable, suffix, true_path in get_jinja_variable_to_param(self.value,
+ self.objectspace,
+ variable.xmlfiles,
+ self.objectspace.functions,
+ self.path_prefix,
+ ):
+ if isinstance(sub_variable, self.objectspace.variable):
+ default['params'][true_path] = {'type': 'variable',
+ 'variable': sub_variable,
+ }
+ if suffix:
+ default['params'][true_path]['suffix'] = suffix
+ return default
+
+ def to_property_function(self) -> dict:
+ self.change_variable_in_params()
+ if self.return_type:
+ raise Exception('return_type not allowed!')
+ if self.type == 'jinja':
+ if None in self.params:
+ self.params[None] = [self.attribute] + self.params[None]
+ else:
+ self.params[None] = [self.attribute]
+ return self._jinja_to_function('jinja_to_property',
+ 'string',
+ False,
+ add_help=True,
+ )
+ if self.type == 'variable':
+ variable_path = self.get_realpath(self.value)
+ variable = self.objectspace.paths[variable_path]
+ if variable.type != 'boolean':
+ raise Exception('only boolean!')
+ default = {'function': 'variable_to_property',
+ 'params': {None: [self.attribute, variable]},
+ 'help': 'variable_to_property',
+ }
+ return default
+ raise Exception('pfff')
+
+ def to_default_function(self) -> dict:
+ self.change_variable_in_params()
+ if self.type == 'jinja':
+ if self.return_type:
+ return_type = self.return_type
+ else:
+ variable = self.objectspace.paths[self.path]
+ return_type = variable.type
+ if self.inside_list:
+ multi = False
+ elif self.path in self.objectspace.followers:
+ multi = self.objectspace.multis[self.path] == 'submulti'
+ else:
+ multi = self.path in self.objectspace.multis
+ return self._jinja_to_function('jinja_to_function',
+ return_type,
+ multi,
+ )
+ elif self.type == 'variable':
+ variable_path = self.get_realpath(self.value)
+ return {'function': 'calc_value',
+ 'params': {None: [{'type': 'variable',
+ 'variable': self.objectspace.paths[variable_path],
+ 'propertyerror': self.propertyerror,
+ }],
+ 'multi': self.path in self.objectspace.multis,
+ 'allow_none': True,
+ }
+ }
+ elif self.type == 'suffix':
+ if self.params:
+ raise Exception('pfff')
+ variable_path = self.get_realpath(self.value)
+ return {'function': 'calc_value',
+ 'params': {None: [{'type': 'suffix'}],
+ 'multi': self.objectspace.paths[variable_path].multi,
+ }
+ }
+ else:
+ raise Exception('pfff')
+
+ def to_validator_function(self) -> dict:
+ self.change_variable_in_params()
+ if self.type == 'jinja':
+ return self._jinja_to_function('valid_with_jinja',
+ 'string',
+ False,
+ )
+ else:
+ raise Exception('pfff')
+
+ def to_choice_function(self) -> dict:
+ self.change_variable_in_params()
+ return_type = self.return_type
+ if return_type is None:
+ return_type = 'string'
+ if self.type == 'jinja':
+ return self._jinja_to_function('jinja_to_function',
+ return_type,
+ not self.inside_list,
+ )
+ elif self.type == 'variable':
+ variable_path = self.get_realpath(self.value)
+ variable = self.objectspace.paths[variable_path]
+ if variable.path not in self.objectspace.multis:
+ raise Exception('pffff')
+ return {'function': 'calc_value',
+ 'params': {None: [{'type': 'variable',
+ 'variable': variable,
+ }],
+ 'multi': False,
+ 'allow_none': True,
+ }
+ }
+ else:
+ raise Exception('pfff')
diff --git a/tests/dictionaries/00empty/makedict/after.json b/tests/dictionaries/00empty/makedict/after.json
index 9cd2d3dde..0967ef424 100644
--- a/tests/dictionaries/00empty/makedict/after.json
+++ b/tests/dictionaries/00empty/makedict/after.json
@@ -1,10 +1 @@
-{
- "services.tata_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.tata_service.manage": {
- "owner": "default",
- "value": true
- }
-}
+{}
diff --git a/tests/dictionaries/00empty/makedict/base.json b/tests/dictionaries/00empty/makedict/base.json
index 2bcec6972..0967ef424 100644
--- a/tests/dictionaries/00empty/makedict/base.json
+++ b/tests/dictionaries/00empty/makedict/base.json
@@ -1,4 +1 @@
-{
- "services.tata_service.activate": true,
- "services.tata_service.manage": true
-}
+{}
diff --git a/tests/dictionaries/00empty/makedict/before.json b/tests/dictionaries/00empty/makedict/before.json
index 9cd2d3dde..0967ef424 100644
--- a/tests/dictionaries/00empty/makedict/before.json
+++ b/tests/dictionaries/00empty/makedict/before.json
@@ -1,10 +1 @@
-{
- "services.tata_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.tata_service.manage": {
- "owner": "default",
- "value": true
- }
-}
+{}
diff --git a/tests/dictionaries/00empty/tiramisu/base.py b/tests/dictionaries/00empty/tiramisu/base.py
index d143ac176..b52a0a626 100644
--- a/tests/dictionaries/00empty/tiramisu/base.py
+++ b/tests/dictionaries/00empty/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,6 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="activate", doc="activate", default=True)
-option_2 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_4 = OptionDescription(name="tata_service", doc="tata.service", children=[option_1, option_2])
-optiondescription_4.impl_set_information('type', "service")
-optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[])
diff --git a/tests/dictionaries/00empty/tiramisu/multi.py b/tests/dictionaries/00empty/tiramisu/multi.py
index 8a3dd5d53..304704b74 100644
--- a/tests/dictionaries/00empty/tiramisu/multi.py
+++ b/tests/dictionaries/00empty/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,8 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="activate", doc="activate", default=True)
-option_2 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_7 = OptionDescription(name="tata_service", doc="tata.service", children=[option_1, option_2])
-optiondescription_7.impl_set_information('type', "service")
-optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_4 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_10 = OptionDescription(name="tata_service", doc="tata.service", children=[option_3, option_4])
-optiondescription_10.impl_set_information('type', "service")
-optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
-optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_8])
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="2", doc="2", children=[], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_2])
diff --git a/tests/dictionaries/00empty_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/00empty_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..321ae7f02
--- /dev/null
+++ b/tests/dictionaries/00empty_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,3 @@
+version: '1.0'
+my_family:
+
diff --git a/tests/dictionaries/00empty_subfamily/dictionaries/rougail/00-base.yml b/tests/dictionaries/00empty_subfamily/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..b8db3c3e3
--- /dev/null
+++ b/tests/dictionaries/00empty_subfamily/dictionaries/rougail/00-base.yml
@@ -0,0 +1,3 @@
+version: '1.0'
+my_family:
+ my_sub_family:
diff --git a/tests/dictionaries/00load_autofreeze/makedict/after.json b/tests/dictionaries/00load_autofreeze/makedict/after.json
deleted file mode 100644
index 36e336b25..000000000
--- a/tests/dictionaries/00load_autofreeze/makedict/after.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.myvar": {
- "owner": "forced",
- "value": "no"
- },
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries/00load_autofreeze/makedict/base.json b/tests/dictionaries/00load_autofreeze/makedict/base.json
deleted file mode 100644
index 92b8b0109..000000000
--- a/tests/dictionaries/00load_autofreeze/makedict/base.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "rougail.myvar": "no",
- "rougail.server_deployed": false
-}
diff --git a/tests/dictionaries/00load_autofreeze/makedict/before.json b/tests/dictionaries/00load_autofreeze/makedict/before.json
deleted file mode 100644
index eaf8d2ecf..000000000
--- a/tests/dictionaries/00load_autofreeze/makedict/before.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.myvar": {
- "owner": "default",
- "value": "no"
- },
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries/00load_autofreeze/tiramisu/base.py b/tests/dictionaries/00load_autofreeze/tiramisu/base.py
deleted file mode 100644
index d0d5a2e05..000000000
--- a/tests/dictionaries/00load_autofreeze/tiramisu/base.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_1 = StrOption(name="myvar", doc="myvar", default="no", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
diff --git a/tests/dictionaries/00load_autofreeze/tiramisu/multi.py b/tests/dictionaries/00load_autofreeze/tiramisu/multi.py
deleted file mode 100644
index cce87cd7e..000000000
--- a/tests/dictionaries/00load_autofreeze/tiramisu/multi.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_1 = StrOption(name="myvar", doc="myvar", default="no", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"basic"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="myvar", doc="myvar", default="no", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[option_3, option_4], properties=frozenset({"basic"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries/00load_autofreeze/xml/00-base.xml b/tests/dictionaries/00load_autofreeze/xml/00-base.xml
deleted file mode 100644
index 96d545532..000000000
--- a/tests/dictionaries/00load_autofreeze/xml/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- no
-
-
- False
-
-
-
diff --git a/tests/dictionaries/00load_autofreeze/yml/00-base.yml b/tests/dictionaries/00load_autofreeze/yml/00-base.yml
deleted file mode 100644
index c42e2e729..000000000
--- a/tests/dictionaries/00load_autofreeze/yml/00-base.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: myvar
- auto_freeze: true
- value:
- - text: 'no'
- - name: server_deployed
- type: boolean
- value:
- - text: false
diff --git a/tests/dictionaries/00load_autofreezeexpert/makedict/after.json b/tests/dictionaries/00load_autofreezeexpert/makedict/after.json
deleted file mode 100644
index 1082f86ab..000000000
--- a/tests/dictionaries/00load_autofreezeexpert/makedict/after.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.my_var": {
- "owner": "forced",
- "value": "no"
- },
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries/00load_autofreezeexpert/makedict/base.json b/tests/dictionaries/00load_autofreezeexpert/makedict/base.json
deleted file mode 100644
index 911baaaeb..000000000
--- a/tests/dictionaries/00load_autofreezeexpert/makedict/base.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "rougail.my_var": "no",
- "rougail.server_deployed": false
-}
diff --git a/tests/dictionaries/00load_autofreezeexpert/makedict/before.json b/tests/dictionaries/00load_autofreezeexpert/makedict/before.json
deleted file mode 100644
index 7c8f380b7..000000000
--- a/tests/dictionaries/00load_autofreezeexpert/makedict/before.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.my_var": {
- "owner": "default",
- "value": "no"
- },
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries/00load_autofreezeexpert/tiramisu/base.py b/tests/dictionaries/00load_autofreezeexpert/tiramisu/base.py
deleted file mode 100644
index 779f4d13b..000000000
--- a/tests/dictionaries/00load_autofreezeexpert/tiramisu/base.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_1 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"expert", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
diff --git a/tests/dictionaries/00load_autofreezeexpert/tiramisu/multi.py b/tests/dictionaries/00load_autofreezeexpert/tiramisu/multi.py
deleted file mode 100644
index c195fb228..000000000
--- a/tests/dictionaries/00load_autofreezeexpert/tiramisu/multi.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_1 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"expert", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"expert", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries/00load_autofreezeexpert/xml/00-base.xml b/tests/dictionaries/00load_autofreezeexpert/xml/00-base.xml
deleted file mode 100644
index 7b8fbc534..000000000
--- a/tests/dictionaries/00load_autofreezeexpert/xml/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- no
-
-
- False
-
-
-
diff --git a/tests/dictionaries/00load_autofreezeexpert/yml/00-base.yml b/tests/dictionaries/00load_autofreezeexpert/yml/00-base.yml
deleted file mode 100644
index f1f146461..000000000
--- a/tests/dictionaries/00load_autofreezeexpert/yml/00-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: my_var
- auto_freeze: true
- mode: expert
- value:
- - text: 'no'
- - name: server_deployed
- type: boolean
- value:
- - text: false
diff --git a/tests/dictionaries/00load_autosave/tiramisu/base.py b/tests/dictionaries/00load_autosave/tiramisu/base.py
deleted file mode 100644
index f5c517efc..000000000
--- a/tests/dictionaries/00load_autosave/tiramisu/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "force_store_value", "mandatory"}))
-optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"basic"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, optiondescription_2], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/00load_autosaveexpert/tiramisu/base.py b/tests/dictionaries/00load_autosaveexpert/tiramisu/base.py
deleted file mode 100644
index 770e2cb42..000000000
--- a/tests/dictionaries/00load_autosaveexpert/tiramisu/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "force_store_value", "mandatory"}))
-optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"expert"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, optiondescription_2], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/00load_comment/tiramisu/base.py b/tests/dictionaries/00load_comment/tiramisu/base.py
deleted file mode 100644
index de3c63d9f..000000000
--- a/tests/dictionaries/00load_comment/tiramisu/base.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
diff --git a/tests/dictionaries/00load_notype/dictionaries/rougail/00-base.yml b/tests/dictionaries/00load_notype/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1355fc8a8
--- /dev/null
+++ b/tests/dictionaries/00load_notype/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ without_type:
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/00load_notype/tiramisu/base.py b/tests/dictionaries/00load_notype/tiramisu/base.py
index 2e9ba75fc..8c18e85be 100644
--- a/tests/dictionaries/00load_notype/tiramisu/base.py
+++ b/tests/dictionaries/00load_notype/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="without_type", doc="without_type", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="without_type", doc="without_type", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/00load_notype/tiramisu/multi.py b/tests/dictionaries/00load_notype/tiramisu/multi.py
index e26761811..2370b2edd 100644
--- a/tests/dictionaries/00load_notype/tiramisu/multi.py
+++ b/tests/dictionaries/00load_notype/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="without_type", doc="without_type", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_6 = StrOption(name="without_type", doc="without_type", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="général", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="without_type", doc="without_type", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="without_type", doc="without_type", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/00load_save/dictionaries/rougail/00-base.yml b/tests/dictionaries/00load_save/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1085cc1cc
--- /dev/null
+++ b/tests/dictionaries/00load_save/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/00load_save/tiramisu/base.py b/tests/dictionaries/00load_save/tiramisu/base.py
index de3c63d9f..084079042 100644
--- a/tests/dictionaries/00load_save/tiramisu/base.py
+++ b/tests/dictionaries/00load_save/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/00load_save/tiramisu/multi.py b/tests/dictionaries/00load_save/tiramisu/multi.py
index 6428e06da..377d2d922 100644
--- a/tests/dictionaries/00load_save/tiramisu/multi.py
+++ b/tests/dictionaries/00load_save/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="général", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/00load_subfolder/dictionaries/rougail/99-base.yml b/tests/dictionaries/00load_subfolder/dictionaries/rougail/99-base.yml
new file mode 100644
index 000000000..0fc6888de
--- /dev/null
+++ b/tests/dictionaries/00load_subfolder/dictionaries/rougail/99-base.yml
@@ -0,0 +1,9 @@
+---
+version: '1.0'
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
diff --git a/tests/dictionaries/00load_subfolder/dictionaries/rougail2/00-base.yml b/tests/dictionaries/00load_subfolder/dictionaries/rougail2/00-base.yml
new file mode 100644
index 000000000..c1f822cad
--- /dev/null
+++ b/tests/dictionaries/00load_subfolder/dictionaries/rougail2/00-base.yml
@@ -0,0 +1,7 @@
+---
+version: "1.0"
+general:
+ mode_conteneur_actif1:
+ description: "No change"
+ hidden: true
+ default: non
diff --git a/tests/dictionaries/00load_subfolder/tiramisu/base.py b/tests/dictionaries/00load_subfolder/tiramisu/base.py
index 8077aa3a6..4f2f79c94 100644
--- a/tests/dictionaries/00load_subfolder/tiramisu/base.py
+++ b/tests/dictionaries/00load_subfolder/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/00load_subfolder/tiramisu/multi.py b/tests/dictionaries/00load_subfolder/tiramisu/multi.py
index 4aefc708f..7d7fd1383 100644
--- a/tests/dictionaries/00load_subfolder/tiramisu/multi.py
+++ b/tests/dictionaries/00load_subfolder/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="général", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/00load_subfolder/yml/99-base.yml b/tests/dictionaries/00load_subfolder/yml/99-base.yml
deleted file mode 100644
index 862ba9941..000000000
--- a/tests/dictionaries/00load_subfolder/yml/99-base.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- description: "g\xE9n\xE9ral"
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/00load_subfolder/yml/subfolder/00-base.yml b/tests/dictionaries/00load_subfolder/yml/subfolder/00-base.yml
deleted file mode 100644
index 7a4d4babe..000000000
--- a/tests/dictionaries/00load_subfolder/yml/subfolder/00-base.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- description: "g\xE9n\xE9ral"
- variables:
- - variable:
- - name: mode_conteneur_actif1
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/01auto_autofreeze/makedict/after.json b/tests/dictionaries/01auto_autofreeze/makedict/after.json
deleted file mode 100644
index 5c307f3b6..000000000
--- a/tests/dictionaries/01auto_autofreeze/makedict/after.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- },
- "rougail.my_variable": {
- "owner": "forced",
- "value": "yes"
- }
-}
diff --git a/tests/dictionaries/01auto_autofreeze/makedict/base.json b/tests/dictionaries/01auto_autofreeze/makedict/base.json
deleted file mode 100644
index 2ca3008f9..000000000
--- a/tests/dictionaries/01auto_autofreeze/makedict/base.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "rougail.server_deployed": false,
- "rougail.my_variable": "yes"
-}
diff --git a/tests/dictionaries/01auto_autofreeze/makedict/before.json b/tests/dictionaries/01auto_autofreeze/makedict/before.json
deleted file mode 100644
index b2905faac..000000000
--- a/tests/dictionaries/01auto_autofreeze/makedict/before.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- },
- "rougail.my_variable": {
- "owner": "default",
- "value": "yes"
- }
-}
diff --git a/tests/dictionaries/01auto_autofreeze/tiramisu/base.py b/tests/dictionaries/01auto_autofreeze/tiramisu/base.py
deleted file mode 100644
index 1725d234a..000000000
--- a/tests/dictionaries/01auto_autofreeze/tiramisu/base.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="my_variable", doc="my_variable", default=Calculation(func.calc_val, Params((ParamValue("yes")))), properties=frozenset({"basic", "force_store_value", "hidden", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_1, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
diff --git a/tests/dictionaries/01auto_autofreeze/tiramisu/multi.py b/tests/dictionaries/01auto_autofreeze/tiramisu/multi.py
deleted file mode 100644
index c4f0540cb..000000000
--- a/tests/dictionaries/01auto_autofreeze/tiramisu/multi.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="my_variable", doc="my_variable", default=Calculation(func.calc_val, Params((ParamValue("yes")))), properties=frozenset({"basic", "force_store_value", "hidden", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_1, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"basic"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="my_variable", doc="my_variable", default=Calculation(func.calc_val, Params((ParamValue("yes")))), properties=frozenset({"basic", "force_store_value", "hidden", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[option_3, option_4], properties=frozenset({"basic"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries/01auto_autofreeze/xml/00-base.xml b/tests/dictionaries/01auto_autofreeze/xml/00-base.xml
deleted file mode 100644
index 64580adeb..000000000
--- a/tests/dictionaries/01auto_autofreeze/xml/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- False
-
-
- no
-
-
-
-
- yes
- my_variable
-
-
-
diff --git a/tests/dictionaries/01auto_autofreeze/yml/00-base.yml b/tests/dictionaries/01auto_autofreeze/yml/00-base.yml
deleted file mode 100644
index 42bcf3aa8..000000000
--- a/tests/dictionaries/01auto_autofreeze/yml/00-base.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: server_deployed
- type: boolean
- value:
- - text: false
- - name: my_variable
- auto_freeze: true
- hidden: true
- value:
- - text: 'no'
-constraints:
-- fill:
- - name: calc_val
- param:
- - text: 'yes'
- target:
- - text: my_variable
diff --git a/tests/dictionaries/01auto_base/tiramisu/base.py b/tests/dictionaries/01auto_base/tiramisu/base.py
deleted file mode 100644
index 557b85fbb..000000000
--- a/tests/dictionaries/01auto_base/tiramisu/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamOption(option_3)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/01auto_jinja_base/tiramisu/base.py b/tests/dictionaries/01auto_jinja_base/tiramisu/base.py
deleted file mode 100644
index 8e310f962..000000000
--- a/tests/dictionaries/01auto_jinja_base/tiramisu/base.py
+++ /dev/null
@@ -1,60 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-from jinja2 import StrictUndefined, DictLoader
-from jinja2.sandbox import SandboxedEnvironment
-from rougail.annotator.variable import CONVERT_OPTION
-def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
- kw = {}
- for key, value in kwargs.items():
- if '.' in key:
- c_kw = kw
- path, var = key.rsplit('.', 1)
- for subkey in path.split('.'):
- c_kw = c_kw.setdefault(subkey, {})
- c_kw[var] = value
- else:
- kw[key] = value
- values = ENV.get_template(__internal_jinja).render(kw)
- convert = CONVERT_OPTION[__internal_type].get('func', str)
- if __internal_multi:
- return [convert(val) for val in values.split(',')]
- return convert(values)
-def valid_with_jinja(value, **kwargs):
- kwargs[kwargs.pop('__internal_key')] = value
- value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
- if value:
- raise ValueError(value)
-func.jinja_to_function = jinja_to_function
-func.valid_with_jinja = valid_with_jinja
-dict_env = {}
-dict_env['rougail.general.mode_conteneur_actif'] = "{{ mode_conteneur_actif1 }}"
-ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
-ENV.compile_templates('jinja_caches', zip=None)
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'mode_conteneur_actif1': ParamOption(option_3)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/01auto_jinja_full_path/tiramisu/base.py b/tests/dictionaries/01auto_jinja_full_path/tiramisu/base.py
deleted file mode 100644
index 9a2616f59..000000000
--- a/tests/dictionaries/01auto_jinja_full_path/tiramisu/base.py
+++ /dev/null
@@ -1,60 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-from jinja2 import StrictUndefined, DictLoader
-from jinja2.sandbox import SandboxedEnvironment
-from rougail.annotator.variable import CONVERT_OPTION
-def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
- kw = {}
- for key, value in kwargs.items():
- if '.' in key:
- c_kw = kw
- path, var = key.rsplit('.', 1)
- for subkey in path.split('.'):
- c_kw = c_kw.setdefault(subkey, {})
- c_kw[var] = value
- else:
- kw[key] = value
- values = ENV.get_template(__internal_jinja).render(kw)
- convert = CONVERT_OPTION[__internal_type].get('func', str)
- if __internal_multi:
- return [convert(val) for val in values.split(',')]
- return convert(values)
-def valid_with_jinja(value, **kwargs):
- kwargs[kwargs.pop('__internal_key')] = value
- value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
- if value:
- raise ValueError(value)
-func.jinja_to_function = jinja_to_function
-func.valid_with_jinja = valid_with_jinja
-dict_env = {}
-dict_env['rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 }}"
-ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
-ENV.compile_templates('jinja_caches', zip=None)
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_3)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/01auto_jinja_if/tiramisu/base.py b/tests/dictionaries/01auto_jinja_if/tiramisu/base.py
deleted file mode 100644
index e056854e2..000000000
--- a/tests/dictionaries/01auto_jinja_if/tiramisu/base.py
+++ /dev/null
@@ -1,62 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-from jinja2 import StrictUndefined, DictLoader
-from jinja2.sandbox import SandboxedEnvironment
-from rougail.annotator.variable import CONVERT_OPTION
-def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
- kw = {}
- for key, value in kwargs.items():
- if '.' in key:
- c_kw = kw
- path, var = key.rsplit('.', 1)
- for subkey in path.split('.'):
- c_kw = c_kw.setdefault(subkey, {})
- c_kw[var] = value
- else:
- kw[key] = value
- values = ENV.get_template(__internal_jinja).render(kw)
- convert = CONVERT_OPTION[__internal_type].get('func', str)
- if __internal_multi:
- return [convert(val) for val in values.split(',')]
- return convert(values)
-def valid_with_jinja(value, **kwargs):
- kwargs[kwargs.pop('__internal_key')] = value
- value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
- if value:
- raise ValueError(value)
-func.jinja_to_function = jinja_to_function
-func.valid_with_jinja = valid_with_jinja
-dict_env = {}
-dict_env['rougail.general.mode_conteneur_actif'] = "{% if mode_conteneur_actif1 == 'non' %}non{% else %}oui{% endif %}"
-dict_env['rougail.general.mode_conteneur_actif2'] = "{% if mode_conteneur_actif1 == \"non\" %}oui{% else %}non{% endif %}"
-ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
-ENV.compile_templates('jinja_caches', zip=None)
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'mode_conteneur_actif1': ParamOption(option_3)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'mode_conteneur_actif1': ParamOption(option_3)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/01auto_jinja_if_bool/tiramisu/base.py b/tests/dictionaries/01auto_jinja_if_bool/tiramisu/base.py
deleted file mode 100644
index ebe8a38f5..000000000
--- a/tests/dictionaries/01auto_jinja_if_bool/tiramisu/base.py
+++ /dev/null
@@ -1,62 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-from jinja2 import StrictUndefined, DictLoader
-from jinja2.sandbox import SandboxedEnvironment
-from rougail.annotator.variable import CONVERT_OPTION
-def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
- kw = {}
- for key, value in kwargs.items():
- if '.' in key:
- c_kw = kw
- path, var = key.rsplit('.', 1)
- for subkey in path.split('.'):
- c_kw = c_kw.setdefault(subkey, {})
- c_kw[var] = value
- else:
- kw[key] = value
- values = ENV.get_template(__internal_jinja).render(kw)
- convert = CONVERT_OPTION[__internal_type].get('func', str)
- if __internal_multi:
- return [convert(val) for val in values.split(',')]
- return convert(values)
-def valid_with_jinja(value, **kwargs):
- kwargs[kwargs.pop('__internal_key')] = value
- value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
- if value:
- raise ValueError(value)
-func.jinja_to_function = jinja_to_function
-func.valid_with_jinja = valid_with_jinja
-dict_env = {}
-dict_env['rougail.general.multi1'] = "{% if bool %}True,False{% else %}False{% endif %}"
-dict_env['rougail.general.multi2'] = "{% if not bool %}True,False{% else %}False{% endif %}"
-ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
-ENV.compile_templates('jinja_caches', zip=None)
-option_2 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
-option_3 = BoolOption(name="multi1", doc="multi1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("rougail.general.multi1"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(True), 'bool': ParamOption(option_2)})), properties=frozenset({"normal"}))
-option_4 = BoolOption(name="multi2", doc="multi2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("rougail.general.multi2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(True), 'bool': ParamOption(option_2)})), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/01auto_jinja_if_int/tiramisu/base.py b/tests/dictionaries/01auto_jinja_if_int/tiramisu/base.py
deleted file mode 100644
index d0b47e92a..000000000
--- a/tests/dictionaries/01auto_jinja_if_int/tiramisu/base.py
+++ /dev/null
@@ -1,61 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-from jinja2 import StrictUndefined, DictLoader
-from jinja2.sandbox import SandboxedEnvironment
-from rougail.annotator.variable import CONVERT_OPTION
-def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
- kw = {}
- for key, value in kwargs.items():
- if '.' in key:
- c_kw = kw
- path, var = key.rsplit('.', 1)
- for subkey in path.split('.'):
- c_kw = c_kw.setdefault(subkey, {})
- c_kw[var] = value
- else:
- kw[key] = value
- values = ENV.get_template(__internal_jinja).render(kw)
- convert = CONVERT_OPTION[__internal_type].get('func', str)
- if __internal_multi:
- return [convert(val) for val in values.split(',')]
- return convert(values)
-def valid_with_jinja(value, **kwargs):
- kwargs[kwargs.pop('__internal_key')] = value
- value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
- if value:
- raise ValueError(value)
-func.jinja_to_function = jinja_to_function
-func.valid_with_jinja = valid_with_jinja
-dict_env = {}
-dict_env['rougail.int1'] = "{% if bool %}1{% else %}2{% endif %}"
-dict_env['rougail.int2'] = "{% if not bool %}3{% else %}4{% endif %}"
-ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
-ENV.compile_templates('jinja_caches', zip=None)
-option_1 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
-option_2 = IntOption(name="int1", doc="int1", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("rougail.int1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'bool': ParamOption(option_1)})), properties=frozenset({"normal"}))
-option_3 = IntOption(name="int2", doc="int2", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("rougail.int2"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'bool': ParamOption(option_1)})), properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/01auto_jinja_set/tiramisu/base.py b/tests/dictionaries/01auto_jinja_set/tiramisu/base.py
deleted file mode 100644
index 2054fb205..000000000
--- a/tests/dictionaries/01auto_jinja_set/tiramisu/base.py
+++ /dev/null
@@ -1,61 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-from jinja2 import StrictUndefined, DictLoader
-from jinja2.sandbox import SandboxedEnvironment
-from rougail.annotator.variable import CONVERT_OPTION
-def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
- kw = {}
- for key, value in kwargs.items():
- if '.' in key:
- c_kw = kw
- path, var = key.rsplit('.', 1)
- for subkey in path.split('.'):
- c_kw = c_kw.setdefault(subkey, {})
- c_kw[var] = value
- else:
- kw[key] = value
- values = ENV.get_template(__internal_jinja).render(kw)
- convert = CONVERT_OPTION[__internal_type].get('func', str)
- if __internal_multi:
- return [convert(val) for val in values.split(',')]
- return convert(values)
-def valid_with_jinja(value, **kwargs):
- kwargs[kwargs.pop('__internal_key')] = value
- value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
- if value:
- raise ValueError(value)
-func.jinja_to_function = jinja_to_function
-func.valid_with_jinja = valid_with_jinja
-dict_env = {}
-dict_env['rougail.int1'] = "{%set bool1 = bool %}{% if bool1 %}1{% else %}2{% endif %}"
-dict_env['rougail.int2'] = "{%set bool1 = bool %}{% if not bool1 %}3{% else %}4{% endif %}"
-ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
-ENV.compile_templates('jinja_caches', zip=None)
-option_1 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
-option_2 = IntOption(name="int1", doc="int1", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("rougail.int1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'bool': ParamOption(option_1)})), properties=frozenset({"normal"}))
-option_3 = IntOption(name="int2", doc="int2", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("rougail.int2"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'bool': ParamOption(option_1)})), properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/01auto_withoutparam/tiramisu/base.py b/tests/dictionaries/01auto_withoutparam/tiramisu/base.py
deleted file mode 100644
index 0b341cc62..000000000
--- a/tests/dictionaries/01auto_withoutparam/tiramisu/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params(())), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/01base_certificate_owner/tiramisu/base.py b/tests/dictionaries/01base_certificate_owner/tiramisu/base.py
deleted file mode 100644
index c5a1cb034..000000000
--- a/tests/dictionaries/01base_certificate_owner/tiramisu/base.py
+++ /dev/null
@@ -1,42 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_6 = SymLinkOption(name="domain", opt=option_1)
-option_7 = StrOption(name="name", doc="name", default="certificate")
-option_8 = UsernameOption(name="owner", doc="owner", default="example")
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_4 = OptionDescription(name="certificate", doc="certificate", children=[option_6, option_7, option_8, option_5])
-optiondescription_4.impl_set_information('authority', "authority")
-optiondescription_4.impl_set_information('format', "cert_key")
-optiondescription_4.impl_set_information('type', "client")
-optiondescription_3 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_4])
-option_2 = BoolOption(name="activate", doc="activate", default=True)
-option_9 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_12 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_3, option_2, option_9])
-optiondescription_12.impl_set_information('type', "service")
-optiondescription_11 = OptionDescription(name="services", doc="services", children=[optiondescription_12], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_10, optiondescription_11])
diff --git a/tests/dictionaries/01base_certificate_owner_variable/tiramisu/base.py b/tests/dictionaries/01base_certificate_owner_variable/tiramisu/base.py
deleted file mode 100644
index 3ea321e46..000000000
--- a/tests/dictionaries/01base_certificate_owner_variable/tiramisu/base.py
+++ /dev/null
@@ -1,43 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = UsernameOption(name="owner", doc="owner", default="example", properties=frozenset({"mandatory", "normal"}))
-option_2 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
-optiondescription_11 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_7 = SymLinkOption(name="domain", opt=option_2)
-option_8 = StrOption(name="name", doc="name", default="certificate")
-option_9 = SymLinkOption(name="owner", opt=option_1)
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="certificate", doc="certificate", children=[option_7, option_8, option_9, option_6])
-optiondescription_5.impl_set_information('authority', "authority")
-optiondescription_5.impl_set_information('format', "cert_key")
-optiondescription_5.impl_set_information('type', "client")
-optiondescription_4 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_13 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_10])
-optiondescription_13.impl_set_information('type', "service")
-optiondescription_12 = OptionDescription(name="services", doc="services", children=[optiondescription_13], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_12])
diff --git a/tests/dictionaries/01base_domainname/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_domainname/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..72519737a
--- /dev/null
+++ b/tests/dictionaries/01base_domainname/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+---
+version: '1.0'
+general:
+ domain:
+ type: domainname
+ description: Description
+ default: my.domain.name
diff --git a/tests/dictionaries/01base_domainname/tiramisu/base.py b/tests/dictionaries/01base_domainname/tiramisu/base.py
index 6b6ac0fa9..7a743047d 100644
--- a/tests/dictionaries/01base_domainname/tiramisu/base.py
+++ b/tests/dictionaries/01base_domainname/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_domainname/tiramisu/multi.py b/tests/dictionaries/01base_domainname/tiramisu/multi.py
index 45bebd723..913599e28 100644
--- a/tests/dictionaries/01base_domainname/tiramisu/multi.py
+++ b/tests/dictionaries/01base_domainname/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01base_file/result/etc/file b/tests/dictionaries/01base_file/result/etc/file
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file/result/etc/file
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file/result/etc/file2 b/tests/dictionaries/01base_file/result/etc/file2
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file/result/etc/file2
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 8a8e63080..000000000
--- a/tests/dictionaries/01base_file/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/file 0644 root root - /usr/local/lib/etc/file
-C /etc/file2 0644 root root - /usr/local/lib/etc/file2
diff --git a/tests/dictionaries/01base_file/tiramisu/base.py b/tests/dictionaries/01base_file/tiramisu/base.py
deleted file mode 100644
index b934bf782..000000000
--- a/tests/dictionaries/01base_file/tiramisu/base.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_8 = StrOption(name="source", doc="source", default="file")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="file", doc="file", children=[option_7, option_8, option_6])
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = StrOption(name="source", doc="source", default="file2")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12, option_10])
-optiondescription_9.impl_set_information('engine', "jinja")
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_16 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_13])
-optiondescription_16.impl_set_information('type', "service")
-optiondescription_15 = OptionDescription(name="services", doc="services", children=[optiondescription_16], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_14, optiondescription_15])
diff --git a/tests/dictionaries/01base_file_disabled/result/etc/file b/tests/dictionaries/01base_file_disabled/result/etc/file
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file_disabled/result/etc/file
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file_disabled/result/etc/file2 b/tests/dictionaries/01base_file_disabled/result/etc/file2
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file_disabled/result/etc/file2
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file_disabled/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_disabled/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 8a8e63080..000000000
--- a/tests/dictionaries/01base_file_disabled/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/file 0644 root root - /usr/local/lib/etc/file
-C /etc/file2 0644 root root - /usr/local/lib/etc/file2
diff --git a/tests/dictionaries/01base_file_disabled/tiramisu/base.py b/tests/dictionaries/01base_file_disabled/tiramisu/base.py
deleted file mode 100644
index 092f40d39..000000000
--- a/tests/dictionaries/01base_file_disabled/tiramisu/base.py
+++ /dev/null
@@ -1,48 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_8 = StrOption(name="source", doc="source", default="file")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="file", doc="file", children=[option_7, option_8, option_6])
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = StrOption(name="source", doc="source", default="file2")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12, option_10])
-optiondescription_9.impl_set_information('engine', "jinja")
-option_15 = FilenameOption(name="name", doc="name", default="/etc/file3")
-option_16 = StrOption(name="source", doc="source", default="file3")
-option_14 = BoolOption(name="activate", doc="activate", default=False)
-optiondescription_13 = OptionDescription(name="file3", doc="file3", children=[option_15, option_16, option_14])
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9, optiondescription_13])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_17 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_20 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_17])
-optiondescription_20.impl_set_information('type', "service")
-optiondescription_19 = OptionDescription(name="services", doc="services", children=[optiondescription_20], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_18, optiondescription_19])
diff --git a/tests/dictionaries/01base_file_include/result/etc/file b/tests/dictionaries/01base_file_include/result/etc/file
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries/01base_file_include/result/etc/file
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries/01base_file_include/result/etc/file2 b/tests/dictionaries/01base_file_include/result/etc/file2
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries/01base_file_include/result/etc/file2
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries/01base_file_include/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_include/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 8a8e63080..000000000
--- a/tests/dictionaries/01base_file_include/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/file 0644 root root - /usr/local/lib/etc/file
-C /etc/file2 0644 root root - /usr/local/lib/etc/file2
diff --git a/tests/dictionaries/01base_file_include/tiramisu/base.py b/tests/dictionaries/01base_file_include/tiramisu/base.py
deleted file mode 100644
index b934bf782..000000000
--- a/tests/dictionaries/01base_file_include/tiramisu/base.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_8 = StrOption(name="source", doc="source", default="file")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="file", doc="file", children=[option_7, option_8, option_6])
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = StrOption(name="source", doc="source", default="file2")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12, option_10])
-optiondescription_9.impl_set_information('engine', "jinja")
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_16 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_13])
-optiondescription_16.impl_set_information('type', "service")
-optiondescription_15 = OptionDescription(name="services", doc="services", children=[optiondescription_16], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_14, optiondescription_15])
diff --git a/tests/dictionaries/01base_file_include/tmpl/file b/tests/dictionaries/01base_file_include/tmpl/file
deleted file mode 100644
index 19f93237a..000000000
--- a/tests/dictionaries/01base_file_include/tmpl/file
+++ /dev/null
@@ -1 +0,0 @@
-%include "incfile"
diff --git a/tests/dictionaries/01base_file_include/tmpl/file2 b/tests/dictionaries/01base_file_include/tmpl/file2
deleted file mode 100644
index 6e61e8c69..000000000
--- a/tests/dictionaries/01base_file_include/tmpl/file2
+++ /dev/null
@@ -1 +0,0 @@
-{% include "incfile2" %}
diff --git a/tests/dictionaries/01base_file_include/tmpl/incfile b/tests/dictionaries/01base_file_include/tmpl/incfile
deleted file mode 100644
index a29cfeaf3..000000000
--- a/tests/dictionaries/01base_file_include/tmpl/incfile
+++ /dev/null
@@ -1 +0,0 @@
-%%mode_conteneur_actif
diff --git a/tests/dictionaries/01base_file_include/tmpl/incfile2 b/tests/dictionaries/01base_file_include/tmpl/incfile2
deleted file mode 100644
index db665a0e7..000000000
--- a/tests/dictionaries/01base_file_include/tmpl/incfile2
+++ /dev/null
@@ -1 +0,0 @@
-{{ mode_conteneur_actif }}
diff --git a/tests/dictionaries/01base_file_include_content/makedict/after.json b/tests/dictionaries/01base_file_include_content/makedict/after.json
deleted file mode 100644
index e3d3f7cd8..000000000
--- a/tests/dictionaries/01base_file_include_content/makedict/after.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.file2.name": {
- "owner": "default",
- "value": "/etc/file2"
- },
- "services.test_service.files.file2.source": {
- "owner": "default",
- "value": "file2"
- },
- "services.test_service.files.file2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.incfile.name": {
- "owner": "default",
- "value": "/etc/dir/incfile"
- },
- "services.test_service.files.incfile.source": {
- "owner": "default",
- "value": "incfile"
- },
- "services.test_service.files.incfile.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/01base_file_include_content/makedict/base.json b/tests/dictionaries/01base_file_include_content/makedict/base.json
deleted file mode 100644
index c4573ab6b..000000000
--- a/tests/dictionaries/01base_file_include_content/makedict/base.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "services.test_service.files.file.name": "/etc/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": true,
- "services.test_service.files.file2.name": "/etc/file2",
- "services.test_service.files.file2.source": "file2",
- "services.test_service.files.file2.activate": true,
- "services.test_service.files.incfile.name": "/etc/dir/incfile",
- "services.test_service.files.incfile.source": "incfile",
- "services.test_service.files.incfile.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/01base_file_include_content/makedict/before.json b/tests/dictionaries/01base_file_include_content/makedict/before.json
deleted file mode 100644
index e3d3f7cd8..000000000
--- a/tests/dictionaries/01base_file_include_content/makedict/before.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.file2.name": {
- "owner": "default",
- "value": "/etc/file2"
- },
- "services.test_service.files.file2.source": {
- "owner": "default",
- "value": "file2"
- },
- "services.test_service.files.file2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.incfile.name": {
- "owner": "default",
- "value": "/etc/dir/incfile"
- },
- "services.test_service.files.incfile.source": {
- "owner": "default",
- "value": "incfile"
- },
- "services.test_service.files.incfile.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/01base_file_include_content/result/etc/file b/tests/dictionaries/01base_file_include_content/result/etc/file
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries/01base_file_include_content/result/etc/file
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries/01base_file_include_content/result/etc/file2 b/tests/dictionaries/01base_file_include_content/result/etc/file2
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries/01base_file_include_content/result/etc/file2
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries/01base_file_include_content/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_include_content/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 8a8e63080..000000000
--- a/tests/dictionaries/01base_file_include_content/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/file 0644 root root - /usr/local/lib/etc/file
-C /etc/file2 0644 root root - /usr/local/lib/etc/file2
diff --git a/tests/dictionaries/01base_file_include_content/tiramisu/base.py b/tests/dictionaries/01base_file_include_content/tiramisu/base.py
deleted file mode 100644
index 70d306b89..000000000
--- a/tests/dictionaries/01base_file_include_content/tiramisu/base.py
+++ /dev/null
@@ -1,49 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_8 = StrOption(name="source", doc="source", default="file")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="file", doc="file", children=[option_7, option_8, option_6])
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = StrOption(name="source", doc="source", default="file2")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12, option_10])
-optiondescription_9.impl_set_information('engine', "jinja")
-option_15 = FilenameOption(name="name", doc="name", default="/etc/dir/incfile")
-option_16 = StrOption(name="source", doc="source", default="incfile")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_13 = OptionDescription(name="incfile", doc="incfile", children=[option_15, option_16, option_14])
-optiondescription_13.impl_set_information('included', "content")
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9, optiondescription_13])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_17 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_20 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_17])
-optiondescription_20.impl_set_information('type', "service")
-optiondescription_19 = OptionDescription(name="services", doc="services", children=[optiondescription_20], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_18, optiondescription_19])
diff --git a/tests/dictionaries/01base_file_include_content/tmpl/file b/tests/dictionaries/01base_file_include_content/tmpl/file
deleted file mode 100644
index 9b6ed7d44..000000000
--- a/tests/dictionaries/01base_file_include_content/tmpl/file
+++ /dev/null
@@ -1,7 +0,0 @@
-%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
deleted file mode 100644
index 2c66fba2b..000000000
--- a/tests/dictionaries/01base_file_include_content/tmpl/file2
+++ /dev/null
@@ -1 +0,0 @@
-{% include "/etc/dir/incfile" %}
diff --git a/tests/dictionaries/01base_file_include_content/tmpl/incfile b/tests/dictionaries/01base_file_include_content/tmpl/incfile
deleted file mode 100644
index a29cfeaf3..000000000
--- a/tests/dictionaries/01base_file_include_content/tmpl/incfile
+++ /dev/null
@@ -1 +0,0 @@
-%%mode_conteneur_actif
diff --git a/tests/dictionaries/01base_file_include_name/makedict/after.json b/tests/dictionaries/01base_file_include_name/makedict/after.json
deleted file mode 100644
index e3d3f7cd8..000000000
--- a/tests/dictionaries/01base_file_include_name/makedict/after.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.file2.name": {
- "owner": "default",
- "value": "/etc/file2"
- },
- "services.test_service.files.file2.source": {
- "owner": "default",
- "value": "file2"
- },
- "services.test_service.files.file2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.incfile.name": {
- "owner": "default",
- "value": "/etc/dir/incfile"
- },
- "services.test_service.files.incfile.source": {
- "owner": "default",
- "value": "incfile"
- },
- "services.test_service.files.incfile.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/01base_file_include_name/makedict/base.json b/tests/dictionaries/01base_file_include_name/makedict/base.json
deleted file mode 100644
index c4573ab6b..000000000
--- a/tests/dictionaries/01base_file_include_name/makedict/base.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "services.test_service.files.file.name": "/etc/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": true,
- "services.test_service.files.file2.name": "/etc/file2",
- "services.test_service.files.file2.source": "file2",
- "services.test_service.files.file2.activate": true,
- "services.test_service.files.incfile.name": "/etc/dir/incfile",
- "services.test_service.files.incfile.source": "incfile",
- "services.test_service.files.incfile.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/01base_file_include_name/makedict/before.json b/tests/dictionaries/01base_file_include_name/makedict/before.json
deleted file mode 100644
index e3d3f7cd8..000000000
--- a/tests/dictionaries/01base_file_include_name/makedict/before.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.file2.name": {
- "owner": "default",
- "value": "/etc/file2"
- },
- "services.test_service.files.file2.source": {
- "owner": "default",
- "value": "file2"
- },
- "services.test_service.files.file2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.incfile.name": {
- "owner": "default",
- "value": "/etc/dir/incfile"
- },
- "services.test_service.files.incfile.source": {
- "owner": "default",
- "value": "incfile"
- },
- "services.test_service.files.incfile.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": 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
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries/01base_file_include_name/result/etc/dir/incfile
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries/01base_file_include_name/result/etc/file b/tests/dictionaries/01base_file_include_name/result/etc/file
deleted file mode 100644
index 1ac4955d8..000000000
--- a/tests/dictionaries/01base_file_include_name/result/etc/file
+++ /dev/null
@@ -1 +0,0 @@
-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
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries/01base_file_include_name/result/etc/file2
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries/01base_file_include_name/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_include_name/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 7692f4d54..000000000
--- a/tests/dictionaries/01base_file_include_name/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-C /etc/file 0644 root root - /usr/local/lib/etc/file
-C /etc/file2 0644 root root - /usr/local/lib/etc/file2
-C /etc/dir/incfile 0644 root root - /usr/local/lib/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
deleted file mode 100644
index 407c37c33..000000000
--- a/tests/dictionaries/01base_file_include_name/tiramisu/base.py
+++ /dev/null
@@ -1,49 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_8 = StrOption(name="source", doc="source", default="file")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="file", doc="file", children=[option_7, option_8, option_6])
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = StrOption(name="source", doc="source", default="file2")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12, option_10])
-optiondescription_9.impl_set_information('engine', "jinja")
-option_15 = FilenameOption(name="name", doc="name", default="/etc/dir/incfile")
-option_16 = StrOption(name="source", doc="source", default="incfile")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_13 = OptionDescription(name="incfile", doc="incfile", children=[option_15, option_16, option_14])
-optiondescription_13.impl_set_information('included', "name")
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9, optiondescription_13])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_17 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_20 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_17])
-optiondescription_20.impl_set_information('type', "service")
-optiondescription_19 = OptionDescription(name="services", doc="services", children=[optiondescription_20], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_18, optiondescription_19])
diff --git a/tests/dictionaries/01base_file_include_name/tmpl/file b/tests/dictionaries/01base_file_include_name/tmpl/file
deleted file mode 100644
index cabf7b219..000000000
--- a/tests/dictionaries/01base_file_include_name/tmpl/file
+++ /dev/null
@@ -1,7 +0,0 @@
-%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
deleted file mode 100644
index 2c66fba2b..000000000
--- a/tests/dictionaries/01base_file_include_name/tmpl/file2
+++ /dev/null
@@ -1 +0,0 @@
-{% include "/etc/dir/incfile" %}
diff --git a/tests/dictionaries/01base_file_include_name/tmpl/incfile b/tests/dictionaries/01base_file_include_name/tmpl/incfile
deleted file mode 100644
index a29cfeaf3..000000000
--- a/tests/dictionaries/01base_file_include_name/tmpl/incfile
+++ /dev/null
@@ -1 +0,0 @@
-%%mode_conteneur_actif
diff --git a/tests/dictionaries/01base_file_mode/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_mode/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index f397d988d..000000000
--- a/tests/dictionaries/01base_file_mode/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-C /etc/file 0755 root root - /usr/local/lib/etc/file
diff --git a/tests/dictionaries/01base_file_mode/tiramisu/base.py b/tests/dictionaries/01base_file_mode/tiramisu/base.py
deleted file mode 100644
index cb670dbfc..000000000
--- a/tests/dictionaries/01base_file_mode/tiramisu/base.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_5 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_6 = StrOption(name="source", doc="source", default="file")
-option_4 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_3 = OptionDescription(name="file", doc="file", children=[option_5, option_6, option_4])
-optiondescription_3.impl_set_information('mode', 755)
-optiondescription_2 = OptionDescription(name="files", doc="files", children=[optiondescription_3])
-option_1 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_9 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_2, option_1, option_7])
-optiondescription_9.impl_set_information('type', "service")
-optiondescription_8 = OptionDescription(name="services", doc="services", children=[optiondescription_9], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
diff --git a/tests/dictionaries/01base_file_mode2/result/etc/file b/tests/dictionaries/01base_file_mode2/result/etc/file
deleted file mode 100644
index 9daeafb98..000000000
--- a/tests/dictionaries/01base_file_mode2/result/etc/file
+++ /dev/null
@@ -1 +0,0 @@
-test
diff --git a/tests/dictionaries/01base_file_mode2/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_mode2/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 546319fa2..000000000
--- a/tests/dictionaries/01base_file_mode2/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-C /etc/file 1755 root root - /usr/local/lib/etc/file
diff --git a/tests/dictionaries/01base_file_mode2/tiramisu/base.py b/tests/dictionaries/01base_file_mode2/tiramisu/base.py
deleted file mode 100644
index 71b93b0d0..000000000
--- a/tests/dictionaries/01base_file_mode2/tiramisu/base.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_5 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_6 = StrOption(name="source", doc="source", default="file")
-option_4 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_3 = OptionDescription(name="file", doc="file", children=[option_5, option_6, option_4])
-optiondescription_3.impl_set_information('mode', 1755)
-optiondescription_2 = OptionDescription(name="files", doc="files", children=[optiondescription_3])
-option_1 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_9 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_2, option_1, option_7])
-optiondescription_9.impl_set_information('type', "service")
-optiondescription_8 = OptionDescription(name="services", doc="services", children=[optiondescription_9], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
diff --git a/tests/dictionaries/01base_file_mode2/tmpl/file b/tests/dictionaries/01base_file_mode2/tmpl/file
deleted file mode 100644
index 9daeafb98..000000000
--- a/tests/dictionaries/01base_file_mode2/tmpl/file
+++ /dev/null
@@ -1 +0,0 @@
-test
diff --git a/tests/dictionaries/01base_file_owner/result/etc/file b/tests/dictionaries/01base_file_owner/result/etc/file
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file_owner/result/etc/file
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file_owner/result/etc/file2 b/tests/dictionaries/01base_file_owner/result/etc/file2
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file_owner/result/etc/file2
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file_owner/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_owner/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 1cb93ff06..000000000
--- a/tests/dictionaries/01base_file_owner/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/file 0644 nobody nobody - /usr/local/lib/etc/file
-C /etc/file2 0644 nobody nobody - /usr/local/lib/etc/file2
diff --git a/tests/dictionaries/01base_file_owner/tiramisu/base.py b/tests/dictionaries/01base_file_owner/tiramisu/base.py
deleted file mode 100644
index 4506d9319..000000000
--- a/tests/dictionaries/01base_file_owner/tiramisu/base.py
+++ /dev/null
@@ -1,48 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = UsernameOption(name="group", doc="group", default="nobody")
-option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_9 = UsernameOption(name="owner", doc="owner", default="nobody")
-option_10 = StrOption(name="source", doc="source", default="file")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="file", doc="file", children=[option_7, option_8, option_9, option_10, option_6])
-option_13 = UsernameOption(name="group", doc="group", default="nobody")
-option_14 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_15 = UsernameOption(name="owner", doc="owner", default="nobody")
-option_16 = StrOption(name="source", doc="source", default="file2")
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_11 = OptionDescription(name="file2", doc="file2", children=[option_13, option_14, option_15, option_16, option_12])
-optiondescription_11.impl_set_information('engine', "jinja")
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_11])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_17 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_20 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_17])
-optiondescription_20.impl_set_information('type', "service")
-optiondescription_19 = OptionDescription(name="services", doc="services", children=[optiondescription_20], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_18, optiondescription_19])
diff --git a/tests/dictionaries/01base_file_owner_variable/result/etc/file b/tests/dictionaries/01base_file_owner_variable/result/etc/file
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file_owner_variable/result/etc/file
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file_owner_variable/result/etc/file2 b/tests/dictionaries/01base_file_owner_variable/result/etc/file2
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file_owner_variable/result/etc/file2
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file_owner_variable/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_owner_variable/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 1cb93ff06..000000000
--- a/tests/dictionaries/01base_file_owner_variable/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/file 0644 nobody nobody - /usr/local/lib/etc/file
-C /etc/file2 0644 nobody nobody - /usr/local/lib/etc/file2
diff --git a/tests/dictionaries/01base_file_owner_variable/tiramisu/base.py b/tests/dictionaries/01base_file_owner_variable/tiramisu/base.py
deleted file mode 100644
index 3c0883ddf..000000000
--- a/tests/dictionaries/01base_file_owner_variable/tiramisu/base.py
+++ /dev/null
@@ -1,50 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = UsernameOption(name="owner", doc="owner", default="nobody", properties=frozenset({"mandatory", "normal"}))
-option_4 = UsernameOption(name="group", doc="group", default="nobody", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = SymLinkOption(name="group", opt=option_4)
-option_10 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_11 = SymLinkOption(name="owner", opt=option_3)
-option_12 = StrOption(name="source", doc="source", default="file")
-option_8 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_11, option_12, option_8])
-option_15 = SymLinkOption(name="group", opt=option_4)
-option_16 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_17 = SymLinkOption(name="owner", opt=option_3)
-option_18 = StrOption(name="source", doc="source", default="file2")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_13 = OptionDescription(name="file2", doc="file2", children=[option_15, option_16, option_17, option_18, option_14])
-optiondescription_13.impl_set_information('engine', "jinja")
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_13])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_19 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_22 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_19])
-optiondescription_22.impl_set_information('type', "service")
-optiondescription_21 = OptionDescription(name="services", doc="services", children=[optiondescription_22], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_20, optiondescription_21])
diff --git a/tests/dictionaries/01base_file_patch/makedict/after.json b/tests/dictionaries/01base_file_patch/makedict/after.json
deleted file mode 100644
index c63a8561a..000000000
--- a/tests/dictionaries/01base_file_patch/makedict/after.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.file2.name": {
- "owner": "default",
- "value": "/etc/file2"
- },
- "services.test_service.files.file2.source": {
- "owner": "default",
- "value": "file2"
- },
- "services.test_service.files.file2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/01base_file_patch/makedict/base.json b/tests/dictionaries/01base_file_patch/makedict/base.json
deleted file mode 100644
index 3524da356..000000000
--- a/tests/dictionaries/01base_file_patch/makedict/base.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "services.test_service.files.file.name": "/etc/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": true,
- "services.test_service.files.file2.name": "/etc/file2",
- "services.test_service.files.file2.source": "file2",
- "services.test_service.files.file2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/01base_file_patch/makedict/before.json b/tests/dictionaries/01base_file_patch/makedict/before.json
deleted file mode 100644
index c63a8561a..000000000
--- a/tests/dictionaries/01base_file_patch/makedict/before.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.file2.name": {
- "owner": "default",
- "value": "/etc/file2"
- },
- "services.test_service.files.file2.source": {
- "owner": "default",
- "value": "file2"
- },
- "services.test_service.files.file2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/01base_file_patch/patches/file.patch b/tests/dictionaries/01base_file_patch/patches/file.patch
deleted file mode 100644
index db5b04d1a..000000000
--- a/tests/dictionaries/01base_file_patch/patches/file.patch
+++ /dev/null
@@ -1,5 +0,0 @@
---- tmpl/file 2020-11-20 07:44:38.588472784 +0100
-+++ dest/file 2020-11-20 07:44:54.588536011 +0100
-@@ -1 +1 @@
--unpatched
-+patched
diff --git a/tests/dictionaries/01base_file_patch/patches/file2.patch b/tests/dictionaries/01base_file_patch/patches/file2.patch
deleted file mode 100644
index d44031f69..000000000
--- a/tests/dictionaries/01base_file_patch/patches/file2.patch
+++ /dev/null
@@ -1,5 +0,0 @@
---- tmpl/file2 2020-11-20 07:44:38.588472784 +0100
-+++ dest/file2 2020-11-20 07:44:54.588536011 +0100
-@@ -1 +1 @@
--unpatched
-+patched
diff --git a/tests/dictionaries/01base_file_patch/result/etc/file b/tests/dictionaries/01base_file_patch/result/etc/file
deleted file mode 100644
index 893adcd31..000000000
--- a/tests/dictionaries/01base_file_patch/result/etc/file
+++ /dev/null
@@ -1 +0,0 @@
-patched
diff --git a/tests/dictionaries/01base_file_patch/result/etc/file2 b/tests/dictionaries/01base_file_patch/result/etc/file2
deleted file mode 100644
index 893adcd31..000000000
--- a/tests/dictionaries/01base_file_patch/result/etc/file2
+++ /dev/null
@@ -1 +0,0 @@
-patched
diff --git a/tests/dictionaries/01base_file_patch/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_patch/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 8a8e63080..000000000
--- a/tests/dictionaries/01base_file_patch/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/file 0644 root root - /usr/local/lib/etc/file
-C /etc/file2 0644 root root - /usr/local/lib/etc/file2
diff --git a/tests/dictionaries/01base_file_patch/tiramisu/base.py b/tests/dictionaries/01base_file_patch/tiramisu/base.py
deleted file mode 100644
index b934bf782..000000000
--- a/tests/dictionaries/01base_file_patch/tiramisu/base.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_8 = StrOption(name="source", doc="source", default="file")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="file", doc="file", children=[option_7, option_8, option_6])
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = StrOption(name="source", doc="source", default="file2")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12, option_10])
-optiondescription_9.impl_set_information('engine', "jinja")
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_16 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_13])
-optiondescription_16.impl_set_information('type', "service")
-optiondescription_15 = OptionDescription(name="services", doc="services", children=[optiondescription_16], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_14, optiondescription_15])
diff --git a/tests/dictionaries/01base_file_patch/tmpl/file b/tests/dictionaries/01base_file_patch/tmpl/file
deleted file mode 100644
index 832551d87..000000000
--- a/tests/dictionaries/01base_file_patch/tmpl/file
+++ /dev/null
@@ -1 +0,0 @@
-unpatched
diff --git a/tests/dictionaries/01base_file_patch/tmpl/file2 b/tests/dictionaries/01base_file_patch/tmpl/file2
deleted file mode 100644
index 832551d87..000000000
--- a/tests/dictionaries/01base_file_patch/tmpl/file2
+++ /dev/null
@@ -1 +0,0 @@
-unpatched
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/makedict/after.json b/tests/dictionaries/01base_file_tmpfiles_delete_before_create/makedict/after.json
deleted file mode 100644
index c63a8561a..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/makedict/after.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.file2.name": {
- "owner": "default",
- "value": "/etc/file2"
- },
- "services.test_service.files.file2.source": {
- "owner": "default",
- "value": "file2"
- },
- "services.test_service.files.file2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/makedict/base.json b/tests/dictionaries/01base_file_tmpfiles_delete_before_create/makedict/base.json
deleted file mode 100644
index 3524da356..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/makedict/base.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "services.test_service.files.file.name": "/etc/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": true,
- "services.test_service.files.file2.name": "/etc/file2",
- "services.test_service.files.file2.source": "file2",
- "services.test_service.files.file2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/makedict/before.json b/tests/dictionaries/01base_file_tmpfiles_delete_before_create/makedict/before.json
deleted file mode 100644
index c63a8561a..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/makedict/before.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.file2.name": {
- "owner": "default",
- "value": "/etc/file2"
- },
- "services.test_service.files.file2.source": {
- "owner": "default",
- "value": "file2"
- },
- "services.test_service.files.file2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/result/etc/file b/tests/dictionaries/01base_file_tmpfiles_delete_before_create/result/etc/file
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/result/etc/file
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/result/etc/file2 b/tests/dictionaries/01base_file_tmpfiles_delete_before_create/result/etc/file2
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/result/etc/file2
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_tmpfiles_delete_before_create/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index c58c2d0c8..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-r /etc/file
-C /etc/file 0644 root root - /usr/local/lib/etc/file
-r /etc/file2
-C /etc/file2 0644 root root - /usr/local/lib/etc/file2
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/tiramisu/base.py b/tests/dictionaries/01base_file_tmpfiles_delete_before_create/tiramisu/base.py
deleted file mode 100644
index b934bf782..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/tiramisu/base.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_8 = StrOption(name="source", doc="source", default="file")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="file", doc="file", children=[option_7, option_8, option_6])
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = StrOption(name="source", doc="source", default="file2")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12, option_10])
-optiondescription_9.impl_set_information('engine', "jinja")
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_16 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_13])
-optiondescription_16.impl_set_information('type', "service")
-optiondescription_15 = OptionDescription(name="services", doc="services", children=[optiondescription_16], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_14, optiondescription_15])
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/makedict/after.json b/tests/dictionaries/01base_file_tmpfiles_factory_dir/makedict/after.json
deleted file mode 100644
index c63a8561a..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_factory_dir/makedict/after.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.file2.name": {
- "owner": "default",
- "value": "/etc/file2"
- },
- "services.test_service.files.file2.source": {
- "owner": "default",
- "value": "file2"
- },
- "services.test_service.files.file2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/makedict/base.json b/tests/dictionaries/01base_file_tmpfiles_factory_dir/makedict/base.json
deleted file mode 100644
index 3524da356..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_factory_dir/makedict/base.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "services.test_service.files.file.name": "/etc/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": true,
- "services.test_service.files.file2.name": "/etc/file2",
- "services.test_service.files.file2.source": "file2",
- "services.test_service.files.file2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/makedict/before.json b/tests/dictionaries/01base_file_tmpfiles_factory_dir/makedict/before.json
deleted file mode 100644
index c63a8561a..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_factory_dir/makedict/before.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.file2.name": {
- "owner": "default",
- "value": "/etc/file2"
- },
- "services.test_service.files.file2.source": {
- "owner": "default",
- "value": "file2"
- },
- "services.test_service.files.file2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/result/etc/file b/tests/dictionaries/01base_file_tmpfiles_factory_dir/result/etc/file
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_factory_dir/result/etc/file
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/result/etc/file2 b/tests/dictionaries/01base_file_tmpfiles_factory_dir/result/etc/file2
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_factory_dir/result/etc/file2
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_tmpfiles_factory_dir/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 9b66eccfc..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_factory_dir/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/file 0644 root root - /test/new/file/etc/file
-C /etc/file2 0644 root root - /test/new/file/etc/file2
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/tiramisu/base.py b/tests/dictionaries/01base_file_tmpfiles_factory_dir/tiramisu/base.py
deleted file mode 100644
index b934bf782..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_factory_dir/tiramisu/base.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_8 = StrOption(name="source", doc="source", default="file")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="file", doc="file", children=[option_7, option_8, option_6])
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = StrOption(name="source", doc="source", default="file2")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12, option_10])
-optiondescription_9.impl_set_information('engine', "jinja")
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_16 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_13])
-optiondescription_16.impl_set_information('type', "service")
-optiondescription_15 = OptionDescription(name="services", doc="services", children=[optiondescription_16], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_14, optiondescription_15])
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/tmpl/file2 b/tests/dictionaries/01base_file_tmpfiles_factory_dir/tmpl/file2
deleted file mode 100644
index 6d214113d..000000000
--- a/tests/dictionaries/01base_file_tmpfiles_factory_dir/tmpl/file2
+++ /dev/null
@@ -1,2 +0,0 @@
-{{ mode_conteneur_actif }}
-{{ rougail.general.mode_conteneur_actif }}
diff --git a/tests/dictionaries/01base_file_utfchar/makedict/after.json b/tests/dictionaries/01base_file_utfchar/makedict/after.json
deleted file mode 100644
index 752041c16..000000000
--- a/tests/dictionaries/01base_file_utfchar/makedict/after.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.name": {
- "owner": "default",
- "value": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel"
- },
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.source": {
- "owner": "default",
- "value": "systemd-makefs@dev-disk-by\\x2dpartlabel"
- },
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.name": {
- "owner": "default",
- "value": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2"
- },
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.source": {
- "owner": "default",
- "value": "systemd-makefs@dev-disk-by\\x2dpartlabel2"
- },
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/01base_file_utfchar/makedict/base.json b/tests/dictionaries/01base_file_utfchar/makedict/base.json
deleted file mode 100644
index f07f3ac16..000000000
--- a/tests/dictionaries/01base_file_utfchar/makedict/base.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.name": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel",
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.source": "systemd-makefs@dev-disk-by\\x2dpartlabel",
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.activate": true,
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.name": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2",
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.source": "systemd-makefs@dev-disk-by\\x2dpartlabel2",
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/01base_file_utfchar/makedict/before.json b/tests/dictionaries/01base_file_utfchar/makedict/before.json
deleted file mode 100644
index 752041c16..000000000
--- a/tests/dictionaries/01base_file_utfchar/makedict/before.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.name": {
- "owner": "default",
- "value": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel"
- },
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.source": {
- "owner": "default",
- "value": "systemd-makefs@dev-disk-by\\x2dpartlabel"
- },
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.name": {
- "owner": "default",
- "value": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2"
- },
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.source": {
- "owner": "default",
- "value": "systemd-makefs@dev-disk-by\\x2dpartlabel2"
- },
- "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git "a/tests/dictionaries/01base_file_utfchar/result/etc/systemd-makefs@dev-disk-by\\x2dpartlabel" "b/tests/dictionaries/01base_file_utfchar/result/etc/systemd-makefs@dev-disk-by\\x2dpartlabel"
deleted file mode 100644
index d907505b5..000000000
--- "a/tests/dictionaries/01base_file_utfchar/result/etc/systemd-makefs@dev-disk-by\\x2dpartlabel"
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git "a/tests/dictionaries/01base_file_utfchar/result/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2" "b/tests/dictionaries/01base_file_utfchar/result/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2"
deleted file mode 100644
index d907505b5..000000000
--- "a/tests/dictionaries/01base_file_utfchar/result/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2"
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries/01base_file_utfchar/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_utfchar/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 628620e0e..000000000
--- a/tests/dictionaries/01base_file_utfchar/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/systemd-makefs@dev-disk-by\x2dpartlabel 0644 root root - /usr/local/lib/etc/systemd-makefs@dev-disk-by\x2dpartlabel
-C /etc/systemd-makefs@dev-disk-by\x2dpartlabel2 0644 root root - /usr/local/lib/etc/systemd-makefs@dev-disk-by\x2dpartlabel2
diff --git a/tests/dictionaries/01base_file_utfchar/tiramisu/base.py b/tests/dictionaries/01base_file_utfchar/tiramisu/base.py
deleted file mode 100644
index cf8e18fdd..000000000
--- a/tests/dictionaries/01base_file_utfchar/tiramisu/base.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/systemd-makefs@dev-disk-by\\x2dpartlabel")
-option_8 = StrOption(name="source", doc="source", default="systemd-makefs@dev-disk-by\\x2dpartlabel")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="systemd_makefs@dev_disk_by\\x2dpartlabel", doc="systemd-makefs@dev-disk-by\\x2dpartlabel", children=[option_7, option_8, option_6])
-option_11 = FilenameOption(name="name", doc="name", default="/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2")
-option_12 = StrOption(name="source", doc="source", default="systemd-makefs@dev-disk-by\\x2dpartlabel2")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="systemd_makefs@dev_disk_by\\x2dpartlabel2", doc="systemd-makefs@dev-disk-by\\x2dpartlabel2", children=[option_11, option_12, option_10])
-optiondescription_9.impl_set_information('engine', "jinja")
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_16 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_13])
-optiondescription_16.impl_set_information('type', "service")
-optiondescription_15 = OptionDescription(name="services", doc="services", children=[optiondescription_16], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_14, optiondescription_15])
diff --git "a/tests/dictionaries/01base_file_utfchar/tmpl/systemd-makefs@dev-disk-by\\x2dpartlabel" "b/tests/dictionaries/01base_file_utfchar/tmpl/systemd-makefs@dev-disk-by\\x2dpartlabel"
deleted file mode 100644
index a29cfeaf3..000000000
--- "a/tests/dictionaries/01base_file_utfchar/tmpl/systemd-makefs@dev-disk-by\\x2dpartlabel"
+++ /dev/null
@@ -1 +0,0 @@
-%%mode_conteneur_actif
diff --git "a/tests/dictionaries/01base_file_utfchar/tmpl/systemd-makefs@dev-disk-by\\x2dpartlabel2" "b/tests/dictionaries/01base_file_utfchar/tmpl/systemd-makefs@dev-disk-by\\x2dpartlabel2"
deleted file mode 100644
index db665a0e7..000000000
--- "a/tests/dictionaries/01base_file_utfchar/tmpl/systemd-makefs@dev-disk-by\\x2dpartlabel2"
+++ /dev/null
@@ -1 +0,0 @@
-{{ mode_conteneur_actif }}
diff --git a/tests/dictionaries/01base_file_var_source/result/etc/file b/tests/dictionaries/01base_file_var_source/result/etc/file
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries/01base_file_var_source/result/etc/file
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries/01base_file_var_source/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/01base_file_var_source/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 1bc5dfc34..000000000
--- a/tests/dictionaries/01base_file_var_source/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-C /etc/file 0644 root root - /usr/local/lib/etc/file
diff --git a/tests/dictionaries/01base_file_var_source/tiramisu/base.py b/tests/dictionaries/01base_file_var_source/tiramisu/base.py
deleted file mode 100644
index 7c93ffffd..000000000
--- a/tests/dictionaries/01base_file_var_source/tiramisu/base.py
+++ /dev/null
@@ -1,40 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="source_var", doc="Description", default="file", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_9 = SymLinkOption(name="source", opt=option_2)
-option_7 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_6 = OptionDescription(name="source_var", doc="source_var", children=[option_8, option_9, option_7])
-optiondescription_5 = OptionDescription(name="files", doc="files", children=[optiondescription_6])
-option_4 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_13 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_5, option_4, option_10])
-optiondescription_13.impl_set_information('type', "service")
-optiondescription_12 = OptionDescription(name="services", doc="services", children=[optiondescription_13], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_12])
diff --git a/tests/dictionaries/01base_file_var_source/tmpl/file b/tests/dictionaries/01base_file_var_source/tmpl/file
deleted file mode 100644
index 27ff6834c..000000000
--- a/tests/dictionaries/01base_file_var_source/tmpl/file
+++ /dev/null
@@ -1,2 +0,0 @@
-%%mode_conteneur_actif
-%%rougail.general.mode_conteneur_actif
diff --git a/tests/dictionaries/01base_float/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_float/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ed2a0c191
--- /dev/null
+++ b/tests/dictionaries/01base_float/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+---
+version: '1.0'
+general:
+ float:
+ type: float
+ description: Description
+ default: 0.527
+ float_multi:
+ type: float
+ description: Description
+ multi: true
+ default:
+ - 0.527
diff --git a/tests/dictionaries/01base_float/tiramisu/base.py b/tests/dictionaries/01base_float/tiramisu/base.py
index e83ffa15f..596c968c1 100644
--- a/tests/dictionaries/01base_float/tiramisu/base.py
+++ b/tests/dictionaries/01base_float/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "normal"}))
-option_3 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_3 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "normal"}))
+option_4 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_float/tiramisu/multi.py b/tests/dictionaries/01base_float/tiramisu/multi.py
index 6d87b4433..a76793142 100644
--- a/tests/dictionaries/01base_float/tiramisu/multi.py
+++ b/tests/dictionaries/01base_float/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "normal"}))
-option_3 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "normal"}))
-option_6 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_4 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "normal"}))
+option_5 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "normal"}))
+option_10 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01base_help_quote/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_help_quote/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..11a0cbd92
--- /dev/null
+++ b/tests/dictionaries/01base_help_quote/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ help: message with '
+ mode_conteneur_actif1:
+ type: string
+ description: Redefine description
+ help: message with "
+version: '1.0'
diff --git a/tests/dictionaries/01base_help_quote/tiramisu/base.py b/tests/dictionaries/01base_help_quote/tiramisu/base.py
index 9c00d87d4..d8d5cc3c7 100644
--- a/tests/dictionaries/01base_help_quote/tiramisu/base.py
+++ b/tests/dictionaries/01base_help_quote/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"normal"}))
-option_2.impl_set_information('help', "message with '")
-option_3 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"normal"}))
-option_3.impl_set_information('help', "message with \"")
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"normal"}))
+option_3.impl_set_information('help', "message with '")
+option_4 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"normal"}))
+option_4.impl_set_information('help', "message with \"")
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_help_quote/tiramisu/multi.py b/tests/dictionaries/01base_help_quote/tiramisu/multi.py
index 1ca1981b0..ee2677a2a 100644
--- a/tests/dictionaries/01base_help_quote/tiramisu/multi.py
+++ b/tests/dictionaries/01base_help_quote/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"normal"}))
-option_2.impl_set_information('help', "message with '")
-option_3 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"normal"}))
-option_3.impl_set_information('help', "message with \"")
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"normal"}))
-option_5.impl_set_information('help', "message with '")
-option_6 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"normal"}))
-option_6.impl_set_information('help', "message with \"")
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"normal"}))
+option_4.impl_set_information('help', "message with '")
+option_5 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"normal"}))
+option_5.impl_set_information('help', "message with \"")
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"normal"}))
+option_9.impl_set_information('help', "message with '")
+option_10 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"normal"}))
+option_10.impl_set_information('help', "message with \"")
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01base_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..13a77c762
--- /dev/null
+++ b/tests/dictionaries/01base_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ multi: true
+ default:
+ - non
+version: '1.0'
diff --git a/tests/dictionaries/01base_multi/tiramisu/base.py b/tests/dictionaries/01base_multi/tiramisu/base.py
index 5fc55cc43..7da3c2ff7 100644
--- a/tests/dictionaries/01base_multi/tiramisu/base.py
+++ b/tests/dictionaries/01base_multi/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_multi/tiramisu/multi.py b/tests/dictionaries/01base_multi/tiramisu/multi.py
index 4b92ec1d2..98c29c4f4 100644
--- a/tests/dictionaries/01base_multi/tiramisu/multi.py
+++ b/tests/dictionaries/01base_multi/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01base_multi_notuniq/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_multi_notuniq/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c86588600
--- /dev/null
+++ b/tests/dictionaries/01base_multi_notuniq/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ multi: true
+ unique: false
+ default:
+ - non
+version: '1.0'
diff --git a/tests/dictionaries/01base_multi_notuniq/tiramisu/base.py b/tests/dictionaries/01base_multi_notuniq/tiramisu/base.py
index 50e6e5a2a..55977ad45 100644
--- a/tests/dictionaries/01base_multi_notuniq/tiramisu/base.py
+++ b/tests/dictionaries/01base_multi_notuniq/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notunique"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty", "notunique"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_multi_notuniq/tiramisu/multi.py b/tests/dictionaries/01base_multi_notuniq/tiramisu/multi.py
index 98b0fa649..a3de02262 100644
--- a/tests/dictionaries/01base_multi_notuniq/tiramisu/multi.py
+++ b/tests/dictionaries/01base_multi_notuniq/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notunique"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notunique"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty", "notunique"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty", "notunique"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01base_multi_uniq/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_multi_uniq/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..a40a48624
--- /dev/null
+++ b/tests/dictionaries/01base_multi_uniq/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ multi: true
+ unique: true
+ default:
+ - non
+version: '1.0'
diff --git a/tests/dictionaries/01base_multi_uniq/tiramisu/base.py b/tests/dictionaries/01base_multi_uniq/tiramisu/base.py
index 3f87d85db..d14e93282 100644
--- a/tests/dictionaries/01base_multi_uniq/tiramisu/base.py
+++ b/tests/dictionaries/01base_multi_uniq/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "unique"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty", "unique"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_multi_uniq/tiramisu/multi.py b/tests/dictionaries/01base_multi_uniq/tiramisu/multi.py
index 7984527c6..f7849fce4 100644
--- a/tests/dictionaries/01base_multi_uniq/tiramisu/multi.py
+++ b/tests/dictionaries/01base_multi_uniq/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "unique"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "unique"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty", "unique"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty", "unique"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01base_provider/tiramisu/base.py b/tests/dictionaries/01base_provider/tiramisu/base.py
deleted file mode 100644
index b9d9dc2d0..000000000
--- a/tests/dictionaries/01base_provider/tiramisu/base.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "normal"}))
-option_3 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
-option_0.impl_set_information('provider:float', "rougail.general.float")
diff --git a/tests/dictionaries/01base_provider_extra/tiramisu/base.py b/tests/dictionaries/01base_provider_extra/tiramisu/base.py
deleted file mode 100644
index 23a27108f..000000000
--- a/tests/dictionaries/01base_provider_extra/tiramisu/base.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = FloatOption(name="float", doc="Description", properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_3 = StrOption(name="description", doc="description", properties=frozenset({"normal"}))
-optiondescription_2 = OptionDescription(name="example", doc="example", children=[option_3], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_2], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4, optiondescription_5])
-option_0.impl_set_information('provider:example', "extra.example.description")
diff --git a/tests/dictionaries/01base_provider_hidden/tiramisu/base.py b/tests/dictionaries/01base_provider_hidden/tiramisu/base.py
deleted file mode 100644
index 622c1545c..000000000
--- a/tests/dictionaries/01base_provider_hidden/tiramisu/base.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"hidden", "mandatory", "normal"}))
-option_3 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
-option_0.impl_set_information('provider:float', "rougail.general.float")
diff --git a/tests/dictionaries/01base_value_doublequote/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_value_doublequote/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ee8d8e599
--- /dev/null
+++ b/tests/dictionaries/01base_value_doublequote/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: quote"
+version: '1.0'
diff --git a/tests/dictionaries/01base_value_doublequote/tiramisu/base.py b/tests/dictionaries/01base_value_doublequote/tiramisu/base.py
index df6ffd962..59cfdf7b0 100644
--- a/tests/dictionaries/01base_value_doublequote/tiramisu/base.py
+++ b/tests/dictionaries/01base_value_doublequote/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_value_doublequote/tiramisu/multi.py b/tests/dictionaries/01base_value_doublequote/tiramisu/multi.py
index 4f866735a..fe1aedfc8 100644
--- a/tests/dictionaries/01base_value_doublequote/tiramisu/multi.py
+++ b/tests/dictionaries/01base_value_doublequote/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01base_value_doublequote2/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_value_doublequote2/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..3071f1a08
--- /dev/null
+++ b/tests/dictionaries/01base_value_doublequote2/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: quote'"
+version: '1.0'
diff --git a/tests/dictionaries/01base_value_doublequote2/tiramisu/base.py b/tests/dictionaries/01base_value_doublequote2/tiramisu/base.py
index 42756be93..0167f9fc5 100644
--- a/tests/dictionaries/01base_value_doublequote2/tiramisu/base.py
+++ b/tests/dictionaries/01base_value_doublequote2/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_value_doublequote2/tiramisu/multi.py b/tests/dictionaries/01base_value_doublequote2/tiramisu/multi.py
index 5fefb986c..dc701fb84 100644
--- a/tests/dictionaries/01base_value_doublequote2/tiramisu/multi.py
+++ b/tests/dictionaries/01base_value_doublequote2/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01base_value_doublequote3/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_value_doublequote3/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..e7442c204
--- /dev/null
+++ b/tests/dictionaries/01base_value_doublequote3/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: quote\"\'
diff --git a/tests/dictionaries/01base_value_doublequote3/tiramisu/base.py b/tests/dictionaries/01base_value_doublequote3/tiramisu/base.py
index 20261795e..b608bdfa1 100644
--- a/tests/dictionaries/01base_value_doublequote3/tiramisu/base.py
+++ b/tests/dictionaries/01base_value_doublequote3/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\\\"\\'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\\\"\\'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_value_doublequote3/tiramisu/multi.py b/tests/dictionaries/01base_value_doublequote3/tiramisu/multi.py
index 97fd85c73..524422849 100644
--- a/tests/dictionaries/01base_value_doublequote3/tiramisu/multi.py
+++ b/tests/dictionaries/01base_value_doublequote3/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\\\"\\'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\\\"\\'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\\\"\\'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01base_value_multi_doublequote/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_value_multi_doublequote/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ca0dc5158
--- /dev/null
+++ b/tests/dictionaries/01base_value_multi_doublequote/dictionaries/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ multi: true
+ default:
+ - quote"
+version: '1.0'
diff --git a/tests/dictionaries/01base_value_multi_doublequote/tiramisu/base.py b/tests/dictionaries/01base_value_multi_doublequote/tiramisu/base.py
index 765f76f35..7c26be341 100644
--- a/tests/dictionaries/01base_value_multi_doublequote/tiramisu/base.py
+++ b/tests/dictionaries/01base_value_multi_doublequote/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote"'], default_multi="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote"'], default_multi="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_value_multi_doublequote/tiramisu/multi.py b/tests/dictionaries/01base_value_multi_doublequote/tiramisu/multi.py
index 2f6fb0031..22829ef97 100644
--- a/tests/dictionaries/01base_value_multi_doublequote/tiramisu/multi.py
+++ b/tests/dictionaries/01base_value_multi_doublequote/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote"'], default_multi="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote"'], default_multi="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote"'], default_multi="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote"'], default_multi="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01base_value_multi_doublequote2/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_value_multi_doublequote2/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..d09865f89
--- /dev/null
+++ b/tests/dictionaries/01base_value_multi_doublequote2/dictionaries/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ multi: true
+ default:
+ - quote'"
+version: '1.0'
diff --git a/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/base.py b/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/base.py
index 8f298ac0b..14fbdbf35 100644
--- a/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/base.py
+++ b/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote\'"'], default_multi="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote\'"'], default_multi="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/multi.py b/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/multi.py
index 993e150d5..1002d6a28 100644
--- a/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/multi.py
+++ b/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote\'"'], default_multi="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote\'"'], default_multi="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote\'"'], default_multi="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote\'"'], default_multi="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01base_value_multi_quote/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_value_multi_quote/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f998e9268
--- /dev/null
+++ b/tests/dictionaries/01base_value_multi_quote/dictionaries/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ multi: true
+ default:
+ - quote'
+version: '1.0'
diff --git a/tests/dictionaries/01base_value_multi_quote/tiramisu/base.py b/tests/dictionaries/01base_value_multi_quote/tiramisu/base.py
index a2a169953..9fda3f33b 100644
--- a/tests/dictionaries/01base_value_multi_quote/tiramisu/base.py
+++ b/tests/dictionaries/01base_value_multi_quote/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'"], default_multi="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'"], default_multi="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_value_multi_quote/tiramisu/multi.py b/tests/dictionaries/01base_value_multi_quote/tiramisu/multi.py
index 4f660b8b5..57a6d7799 100644
--- a/tests/dictionaries/01base_value_multi_quote/tiramisu/multi.py
+++ b/tests/dictionaries/01base_value_multi_quote/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'"], default_multi="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'"], default_multi="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'"], default_multi="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'"], default_multi="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01base_value_quote/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_value_quote/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..d602e8e26
--- /dev/null
+++ b/tests/dictionaries/01base_value_quote/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: quote'
+version: '1.0'
diff --git a/tests/dictionaries/01base_value_quote/tiramisu/base.py b/tests/dictionaries/01base_value_quote/tiramisu/base.py
index 16db27f31..bd56c18fd 100644
--- a/tests/dictionaries/01base_value_quote/tiramisu/base.py
+++ b/tests/dictionaries/01base_value_quote/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_value_quote/tiramisu/multi.py b/tests/dictionaries/01base_value_quote/tiramisu/multi.py
index 0be7f55c8..4c7643057 100644
--- a/tests/dictionaries/01base_value_quote/tiramisu/multi.py
+++ b/tests/dictionaries/01base_value_quote/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01base_var_name_same_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/01base_var_name_same_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0a73fd775
--- /dev/null
+++ b/tests/dictionaries/01base_var_name_same_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ general:
+ type: string
+ description: description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01base_var_name_same_family/tiramisu/base.py b/tests/dictionaries/01base_var_name_same_family/tiramisu/base.py
index 46049dc0a..54e4bdc36 100644
--- a/tests/dictionaries/01base_var_name_same_family/tiramisu/base.py
+++ b/tests/dictionaries/01base_var_name_same_family/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="general", doc="description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="general", doc="description", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_var_name_same_family/tiramisu/multi.py b/tests/dictionaries/01base_var_name_same_family/tiramisu/multi.py
index c57e08b13..6071f8a44 100644
--- a/tests/dictionaries/01base_var_name_same_family/tiramisu/multi.py
+++ b/tests/dictionaries/01base_var_name_same_family/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="general", doc="description", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="general", doc="description", default="non", properties=frozenset({"mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="general", doc="description", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01boolean_no_mandatory/dictionaries/rougail/00-base.yml b/tests/dictionaries/01boolean_no_mandatory/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..456cb907f
--- /dev/null
+++ b/tests/dictionaries/01boolean_no_mandatory/dictionaries/rougail/00-base.yml
@@ -0,0 +1,4 @@
+my_variable:
+ type: boolean
+ mandatory: false
+version: '1.0'
diff --git a/tests/dictionaries/01boolean_no_mandatory/tiramisu/base.py b/tests/dictionaries/01boolean_no_mandatory/tiramisu/base.py
index bd39ff99d..ca143ff96 100644
--- a/tests/dictionaries/01boolean_no_mandatory/tiramisu/base.py
+++ b/tests/dictionaries/01boolean_no_mandatory/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,17 +17,8 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="my_variable", doc="my_variable", default=True, properties=frozenset({"normal"}))
-optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_2])
+option_2 = BoolOption(name="my_variable", doc="my_variable", default=True, properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01boolean_no_mandatory/tiramisu/multi.py b/tests/dictionaries/01boolean_no_mandatory/tiramisu/multi.py
index 81f238db0..10f7369f2 100644
--- a/tests/dictionaries/01boolean_no_mandatory/tiramisu/multi.py
+++ b/tests/dictionaries/01boolean_no_mandatory/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="my_variable", doc="my_variable", default=True, properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="1", doc="1", children=[optiondescription_4])
-option_2 = BoolOption(name="my_variable", doc="my_variable", default=True, properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3, optiondescription_5])
+option_3 = BoolOption(name="my_variable", doc="my_variable", default=True, properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = BoolOption(name="my_variable", doc="my_variable", default=True, properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="rougail", doc="rougail", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="2", doc="2", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01family_description/dictionaries/rougail/00-base.yml b/tests/dictionaries/01family_description/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..737ff62b9
--- /dev/null
+++ b/tests/dictionaries/01family_description/dictionaries/rougail/00-base.yml
@@ -0,0 +1,5 @@
+general:
+ description: Other description
+ mode_conteneur_actif:
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01family_description/tiramisu/base.py b/tests/dictionaries/01family_description/tiramisu/base.py
index e9f128c02..ef5422fa9 100644
--- a/tests/dictionaries/01family_description/tiramisu/base.py
+++ b/tests/dictionaries/01family_description/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="Other description", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="Other description", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01family_description/tiramisu/multi.py b/tests/dictionaries/01family_description/tiramisu/multi.py
index 0038de8de..4881f105a 100644
--- a/tests/dictionaries/01family_description/tiramisu/multi.py
+++ b/tests/dictionaries/01family_description/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="Other description", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="Other description", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="Other description", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01fill_autofreeze/makedict/after.json b/tests/dictionaries/01fill_autofreeze/makedict/after.json
deleted file mode 100644
index 0a8336774..000000000
--- a/tests/dictionaries/01fill_autofreeze/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.my_var1": {
- "owner": "forced",
- "value": "no"
- },
- "rougail.my_var2": {
- "owner": "default",
- "value": "no"
- },
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries/01fill_autofreeze/makedict/base.json b/tests/dictionaries/01fill_autofreeze/makedict/base.json
deleted file mode 100644
index 3f79625c6..000000000
--- a/tests/dictionaries/01fill_autofreeze/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.my_var1": "no",
- "rougail.my_var2": "no",
- "rougail.server_deployed": false
-}
diff --git a/tests/dictionaries/01fill_autofreeze/makedict/before.json b/tests/dictionaries/01fill_autofreeze/makedict/before.json
deleted file mode 100644
index 101266cde..000000000
--- a/tests/dictionaries/01fill_autofreeze/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.my_var1": {
- "owner": "default",
- "value": "no"
- },
- "rougail.my_var2": {
- "owner": "default",
- "value": "no"
- },
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries/01fill_autofreeze/tiramisu/base.py b/tests/dictionaries/01fill_autofreeze/tiramisu/base.py
deleted file mode 100644
index b072c8fbd..000000000
--- a/tests/dictionaries/01fill_autofreeze/tiramisu/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_1 = StrOption(name="my_var1", doc="my_var1", default=Calculation(func.calc_val, Params((ParamOption(option_2)))), properties=frozenset({"basic", "force_store_value", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/01fill_autofreeze/xml/00-base.xml b/tests/dictionaries/01fill_autofreeze/xml/00-base.xml
deleted file mode 100644
index 166029124..000000000
--- a/tests/dictionaries/01fill_autofreeze/xml/00-base.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- no
-
-
- no
-
-
- False
-
-
-
-
- my_var2
- my_var1
-
-
-
diff --git a/tests/dictionaries/01fill_autosave/tiramisu/base.py b/tests/dictionaries/01fill_autosave/tiramisu/base.py
deleted file mode 100644
index f7da929d4..000000000
--- a/tests/dictionaries/01fill_autosave/tiramisu/base.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamOption(option_4)))), properties=frozenset({"basic", "force_store_value"}))
-optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"basic"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, optiondescription_2], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/01fill_base/tiramisu/base.py b/tests/dictionaries/01fill_base/tiramisu/base.py
deleted file mode 100644
index ebcf7cdcc..000000000
--- a/tests/dictionaries/01fill_base/tiramisu/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamOption(option_3)))), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/01fill_mandatory/tiramisu/base.py b/tests/dictionaries/01fill_mandatory/tiramisu/base.py
deleted file mode 100644
index fbf575a1c..000000000
--- a/tests/dictionaries/01fill_mandatory/tiramisu/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamOption(option_3)))), properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"basic"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/01fill_number/tiramisu/base.py b/tests/dictionaries/01fill_number/tiramisu/base.py
deleted file mode 100644
index 3c6d3067b..000000000
--- a/tests/dictionaries/01fill_number/tiramisu/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = IntOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue(3)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/01fill_only_optional/tiramisu/base.py b/tests/dictionaries/01fill_only_optional/tiramisu/base.py
deleted file mode 100644
index 0b341cc62..000000000
--- a/tests/dictionaries/01fill_only_optional/tiramisu/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params(())), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/01fill_optional/tiramisu/base.py b/tests/dictionaries/01fill_optional/tiramisu/base.py
deleted file mode 100644
index 557b85fbb..000000000
--- a/tests/dictionaries/01fill_optional/tiramisu/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamOption(option_3)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/01fill_quote/tiramisu/base.py b/tests/dictionaries/01fill_quote/tiramisu/base.py
deleted file mode 100644
index 86dd3f249..000000000
--- a/tests/dictionaries/01fill_quote/tiramisu/base.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("quote'")))), properties=frozenset({"normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("quote\"")))), properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("quote\"'")))), properties=frozenset({"normal"}))
-option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("quote\"\\'")))), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
diff --git a/tests/dictionaries/01fill_target_optional/tiramisu/base.py b/tests/dictionaries/01fill_target_optional/tiramisu/base.py
deleted file mode 100644
index 7130c00a0..000000000
--- a/tests/dictionaries/01fill_target_optional/tiramisu/base.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
diff --git a/tests/dictionaries/01hidden_if_in_autofreeze/makedict/after.json b/tests/dictionaries/01hidden_if_in_autofreeze/makedict/after.json
deleted file mode 100644
index bb359545a..000000000
--- a/tests/dictionaries/01hidden_if_in_autofreeze/makedict/after.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- },
- "rougail.my_var": {
- "owner": "forced",
- "value": "yes"
- }
-}
diff --git a/tests/dictionaries/01hidden_if_in_autofreeze/makedict/base.json b/tests/dictionaries/01hidden_if_in_autofreeze/makedict/base.json
deleted file mode 100644
index 465c3cbab..000000000
--- a/tests/dictionaries/01hidden_if_in_autofreeze/makedict/base.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "rougail.server_deployed": false,
- "rougail.my_var": "yes"
-}
diff --git a/tests/dictionaries/01hidden_if_in_autofreeze/makedict/before.json b/tests/dictionaries/01hidden_if_in_autofreeze/makedict/before.json
deleted file mode 100644
index a35981a8f..000000000
--- a/tests/dictionaries/01hidden_if_in_autofreeze/makedict/before.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- },
- "rougail.my_var": {
- "owner": "default",
- "value": "yes"
- }
-}
diff --git a/tests/dictionaries/01hidden_if_in_autofreeze/tiramisu/base.py b/tests/dictionaries/01hidden_if_in_autofreeze/tiramisu/base.py
deleted file mode 100644
index 2e74dfd49..000000000
--- a/tests/dictionaries/01hidden_if_in_autofreeze/tiramisu/base.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="my_var", doc="my_var", default=Calculation(func.calc_val, Params((ParamValue("yes")))), properties=frozenset({"basic", "force_store_value", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_1, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_1, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
diff --git a/tests/dictionaries/01test/dictionaries/rougail/00-base.yml b/tests/dictionaries/01test/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1bbd4f95b
--- /dev/null
+++ b/tests/dictionaries/01test/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ test:
+ - test
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01test/tiramisu/base.py b/tests/dictionaries/01test/tiramisu/base.py
index 59a458558..cf2402559 100644
--- a/tests/dictionaries/01test/tiramisu/base.py
+++ b/tests/dictionaries/01test/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2.impl_set_information('test', ('test',))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3.impl_set_information('test', ('test',))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01test/tiramisu/multi.py b/tests/dictionaries/01test/tiramisu/multi.py
index d42e8e1be..bc0634d03 100644
--- a/tests/dictionaries/01test/tiramisu/multi.py
+++ b/tests/dictionaries/01test/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2.impl_set_information('test', ('test',))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
option_4.impl_set_information('test', ('test',))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_8.impl_set_information('test', ('test',))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/src/rougail/template/__init__.py b/tests/dictionaries/01test_boolean/__init__.py
similarity index 100%
rename from src/rougail/template/__init__.py
rename to tests/dictionaries/01test_boolean/__init__.py
diff --git a/tests/dictionaries/01test_boolean/dictionaries/rougail/00-base.yml b/tests/dictionaries/01test_boolean/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..cb4fae901
--- /dev/null
+++ b/tests/dictionaries/01test_boolean/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: "boolean"
+ test:
+ - false
+ default: true
+version: '1.0'
diff --git a/tests/dictionaries/01test_boolean/makedict/after.json b/tests/dictionaries/01test_boolean/makedict/after.json
new file mode 100644
index 000000000..a4b17e4d8
--- /dev/null
+++ b/tests/dictionaries/01test_boolean/makedict/after.json
@@ -0,0 +1,6 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries/01test_boolean/makedict/base.json b/tests/dictionaries/01test_boolean/makedict/base.json
new file mode 100644
index 000000000..d1567df62
--- /dev/null
+++ b/tests/dictionaries/01test_boolean/makedict/base.json
@@ -0,0 +1,3 @@
+{
+ "rougail.general.mode_conteneur_actif": true
+}
diff --git a/tests/dictionaries/01test_boolean/makedict/before.json b/tests/dictionaries/01test_boolean/makedict/before.json
new file mode 100644
index 000000000..a4b17e4d8
--- /dev/null
+++ b/tests/dictionaries/01test_boolean/makedict/before.json
@@ -0,0 +1,6 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries/01test_boolean/tiramisu/base.py b/tests/dictionaries/01test_boolean/tiramisu/base.py
new file mode 100644
index 000000000..6c8a38603
--- /dev/null
+++ b/tests/dictionaries/01test_boolean/tiramisu/base.py
@@ -0,0 +1,26 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+option_3 = BoolOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default=True, properties=frozenset({"mandatory", "normal"}))
+option_3.impl_set_information('test', (False,))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01test_boolean/tiramisu/multi.py b/tests/dictionaries/01test_boolean/tiramisu/multi.py
new file mode 100644
index 000000000..199013c62
--- /dev/null
+++ b/tests/dictionaries/01test_boolean/tiramisu/multi.py
@@ -0,0 +1,32 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+option_4 = BoolOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default=True, properties=frozenset({"mandatory", "normal"}))
+option_4.impl_set_information('test', (False,))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = BoolOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default=True, properties=frozenset({"mandatory", "normal"}))
+option_8.impl_set_information('test', (False,))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01test_boolean/xml/00-base.xml b/tests/dictionaries/01test_boolean/xml/00-base.xml
new file mode 100644
index 000000000..4c938a147
--- /dev/null
+++ b/tests/dictionaries/01test_boolean/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/01test_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/01test_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c183b6f31
--- /dev/null
+++ b/tests/dictionaries/01test_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ test:
+ - test1
+ - test2
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01test_multi/tiramisu/base.py b/tests/dictionaries/01test_multi/tiramisu/base.py
index 2cf0fd24e..b4efef642 100644
--- a/tests/dictionaries/01test_multi/tiramisu/base.py
+++ b/tests/dictionaries/01test_multi/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2.impl_set_information('test', ('test1', 'test2'))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3.impl_set_information('test', ('test1', 'test2'))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01test_multi/tiramisu/multi.py b/tests/dictionaries/01test_multi/tiramisu/multi.py
index 109837eda..32bfcdac5 100644
--- a/tests/dictionaries/01test_multi/tiramisu/multi.py
+++ b/tests/dictionaries/01test_multi/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2.impl_set_information('test', ('test1', 'test2'))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
option_4.impl_set_information('test', ('test1', 'test2'))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_8.impl_set_information('test', ('test1', 'test2'))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01test_multi_none/dictionaries/rougail/00-base.yml b/tests/dictionaries/01test_multi_none/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..eb5f0c525
--- /dev/null
+++ b/tests/dictionaries/01test_multi_none/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ mode_conteneur_actif:
+ test:
+ - null
+ - test1
+ - test2
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01test_multi_none/tiramisu/base.py b/tests/dictionaries/01test_multi_none/tiramisu/base.py
index 1ac78ec89..53713d28a 100644
--- a/tests/dictionaries/01test_multi_none/tiramisu/base.py
+++ b/tests/dictionaries/01test_multi_none/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2.impl_set_information('test', (None, 'test1', 'test2'))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3.impl_set_information('test', (None, 'test1', 'test2'))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01test_multi_none/tiramisu/multi.py b/tests/dictionaries/01test_multi_none/tiramisu/multi.py
index 3a45a6a56..2ba94abc4 100644
--- a/tests/dictionaries/01test_multi_none/tiramisu/multi.py
+++ b/tests/dictionaries/01test_multi_none/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2.impl_set_information('test', (None, 'test1', 'test2'))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
option_4.impl_set_information('test', (None, 'test1', 'test2'))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_8.impl_set_information('test', (None, 'test1', 'test2'))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01test_redefine/dictionaries/rougail/00-base.yml b/tests/dictionaries/01test_redefine/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1bbd4f95b
--- /dev/null
+++ b/tests/dictionaries/01test_redefine/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ test:
+ - test
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01test_redefine/dictionaries/rougail/10-base.yml b/tests/dictionaries/01test_redefine/dictionaries/rougail/10-base.yml
new file mode 100644
index 000000000..fce89f579
--- /dev/null
+++ b/tests/dictionaries/01test_redefine/dictionaries/rougail/10-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ test:
+ - test1
+version: '1.0'
diff --git a/tests/dictionaries/01test_redefine/tiramisu/base.py b/tests/dictionaries/01test_redefine/tiramisu/base.py
index 72606e19d..b09e9c2da 100644
--- a/tests/dictionaries/01test_redefine/tiramisu/base.py
+++ b/tests/dictionaries/01test_redefine/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2.impl_set_information('test', ('test1',))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3.impl_set_information('test', ('test1',))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01test_redefine/tiramisu/multi.py b/tests/dictionaries/01test_redefine/tiramisu/multi.py
index 0e732dd8b..3e0a02c9d 100644
--- a/tests/dictionaries/01test_redefine/tiramisu/multi.py
+++ b/tests/dictionaries/01test_redefine/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2.impl_set_information('test', ('test1',))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
option_4.impl_set_information('test', ('test1',))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_8.impl_set_information('test', ('test1',))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01test_redefine_base/dictionaries/rougail/00-base.yml b/tests/dictionaries/01test_redefine_base/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f11d43a19
--- /dev/null
+++ b/tests/dictionaries/01test_redefine_base/dictionaries/rougail/00-base.yml
@@ -0,0 +1,2 @@
+my_variable: {}
+version: '1.0'
diff --git a/tests/dictionaries/01test_redefine_base/dictionaries/rougail/10-base.yml b/tests/dictionaries/01test_redefine_base/dictionaries/rougail/10-base.yml
new file mode 100644
index 000000000..7e0e2e829
--- /dev/null
+++ b/tests/dictionaries/01test_redefine_base/dictionaries/rougail/10-base.yml
@@ -0,0 +1,5 @@
+my_variable:
+ redefine: true
+ test:
+ - test1
+version: '1.0'
diff --git a/tests/dictionaries/01test_redefine_base/tiramisu/base.py b/tests/dictionaries/01test_redefine_base/tiramisu/base.py
index 58f7d672b..9e86580b2 100644
--- a/tests/dictionaries/01test_redefine_base/tiramisu/base.py
+++ b/tests/dictionaries/01test_redefine_base/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
-option_1.impl_set_information('test', ('test1',))
-optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_2])
+option_2 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
+option_2.impl_set_information('test', ('test1',))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01test_redefine_base/tiramisu/multi.py b/tests/dictionaries/01test_redefine_base/tiramisu/multi.py
index d005f51e4..2fec08221 100644
--- a/tests/dictionaries/01test_redefine_base/tiramisu/multi.py
+++ b/tests/dictionaries/01test_redefine_base/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
-option_1.impl_set_information('test', ('test1',))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="1", doc="1", children=[optiondescription_4])
-option_2 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
-option_2.impl_set_information('test', ('test1',))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3, optiondescription_5])
+option_3 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
+option_3.impl_set_information('test', ('test1',))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
+option_6.impl_set_information('test', ('test1',))
+optiondescription_5 = OptionDescription(name="rougail", doc="rougail", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="2", doc="2", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01test_redefine_remove/dictionaries/rougail/00-base.yml b/tests/dictionaries/01test_redefine_remove/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1bbd4f95b
--- /dev/null
+++ b/tests/dictionaries/01test_redefine_remove/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ test:
+ - test
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01test_redefine_remove/dictionaries/rougail/10-base.yml b/tests/dictionaries/01test_redefine_remove/dictionaries/rougail/10-base.yml
new file mode 100644
index 000000000..b1baea2d3
--- /dev/null
+++ b/tests/dictionaries/01test_redefine_remove/dictionaries/rougail/10-base.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ test: null
+version: '1.0'
diff --git a/tests/dictionaries/01test_redefine_remove/tiramisu/base.py b/tests/dictionaries/01test_redefine_remove/tiramisu/base.py
index 935d23394..496cb7cfa 100644
--- a/tests/dictionaries/01test_redefine_remove/tiramisu/base.py
+++ b/tests/dictionaries/01test_redefine_remove/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01test_redefine_remove/tiramisu/multi.py b/tests/dictionaries/01test_redefine_remove/tiramisu/multi.py
index 1326f247d..3c2110efd 100644
--- a/tests/dictionaries/01test_redefine_remove/tiramisu/multi.py
+++ b/tests/dictionaries/01test_redefine_remove/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/02autosave_hidden_frozenifin/tiramisu/base.py b/tests/dictionaries/02autosave_hidden_frozenifin/tiramisu/base.py
deleted file mode 100644
index 5c370b41f..000000000
--- a/tests/dictionaries/02autosave_hidden_frozenifin/tiramisu/base.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func.calc_val, Params((ParamValue("oui")))), properties=frozenset({"basic", "force_store_value", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"basic"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, optiondescription_2], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/02fill_multi_calc_val/tiramisu/base.py b/tests/dictionaries/02fill_multi_calc_val/tiramisu/base.py
deleted file mode 100644
index f9c346a78..000000000
--- a/tests/dictionaries/02fill_multi_calc_val/tiramisu/base.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="var1", doc="var1", default="no", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func.calc_value, Params((ParamOption(option_1)), kwargs={'multi': ParamValue(True)})), properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
diff --git a/tests/dictionaries/02fill_multi_calc_val_multi/tiramisu/base.py b/tests/dictionaries/02fill_multi_calc_val_multi/tiramisu/base.py
deleted file mode 100644
index faa834b73..000000000
--- a/tests/dictionaries/02fill_multi_calc_val_multi/tiramisu/base.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="var1", doc="var1", multi=True, default=['no', 'yes', 'maybe'], default_multi="no", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func.calc_value, Params((ParamOption(option_1)))), properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
diff --git a/tests/dictionaries/10autosave_hidden/dictionaries/rougail/00-base.yml b/tests/dictionaries/10autosave_hidden/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..a00889e96
--- /dev/null
+++ b/tests/dictionaries/10autosave_hidden/dictionaries/rougail/00-base.yml
@@ -0,0 +1,18 @@
+server_deployed:
+ type: boolean
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ autosavevar:
+ type: string
+ description: autosave variable
+ hidden: true
+ auto_save: true
+ default:
+ type: jinja
+ jinja: '{{ "oui" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/10autosave_hidden/tiramisu/base.py b/tests/dictionaries/10autosave_hidden/tiramisu/base.py
index ad85968ee..9722ad56c 100644
--- a/tests/dictionaries/10autosave_hidden/tiramisu/base.py
+++ b/tests/dictionaries/10autosave_hidden/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func.calc_val, Params((ParamValue("oui")))), properties=frozenset({"basic", "force_store_value", "frozen", "hidden"}))
-optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"basic"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, optiondescription_2], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"basic", "force_store_value", "frozen", "hidden"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10autosave_hidden/tiramisu/multi.py b/tests/dictionaries/10autosave_hidden/tiramisu/multi.py
index 576f87cff..f3339b766 100644
--- a/tests/dictionaries/10autosave_hidden/tiramisu/multi.py
+++ b/tests/dictionaries/10autosave_hidden/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func.calc_val, Params((ParamValue("oui")))), properties=frozenset({"basic", "force_store_value", "frozen", "hidden"}))
-optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"basic"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, optiondescription_2], properties=frozenset({"basic"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_5 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_8 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func.calc_val, Params((ParamValue("oui")))), properties=frozenset({"basic", "force_store_value", "frozen", "hidden"}))
-optiondescription_6 = OptionDescription(name="general", doc="général", children=[option_7, option_8], properties=frozenset({"basic"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[option_5, optiondescription_6], properties=frozenset({"basic"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}"
+dict_env['default_2.rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"basic", "force_store_value", "frozen", "hidden"}))
+optiondescription_4 = OptionDescription(name="general", doc="général", children=[option_5, option_6], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_9 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_12 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"basic", "force_store_value", "frozen", "hidden"}))
+optiondescription_10 = OptionDescription(name="general", doc="général", children=[option_11, option_12], properties=frozenset({"basic"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[option_9, optiondescription_10], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10base_certificate_list/tiramisu/base.py b/tests/dictionaries/10base_certificate_list/tiramisu/base.py
deleted file mode 100644
index 41beb5652..000000000
--- a/tests/dictionaries/10base_certificate_list/tiramisu/base.py
+++ /dev/null
@@ -1,42 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_6 = SymLinkOption(name="domain", opt=option_1)
-option_7 = StrOption(name="name", doc="name", default="certificate")
-option_8 = UsernameOption(name="owner", doc="owner", default="example")
-option_5 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_1, notraisepropertyerror=True), 'expected_0': ParamValue("example1.net")})))
-optiondescription_4 = OptionDescription(name="certificate", doc="certificate", children=[option_6, option_7, option_8, option_5])
-optiondescription_4.impl_set_information('authority', "authority")
-optiondescription_4.impl_set_information('format', "cert_key")
-optiondescription_4.impl_set_information('type', "client")
-optiondescription_3 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_4])
-option_2 = BoolOption(name="activate", doc="activate", default=True)
-option_9 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_12 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_3, option_2, option_9])
-optiondescription_12.impl_set_information('type', "service")
-optiondescription_11 = OptionDescription(name="services", doc="services", children=[optiondescription_12], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_10, optiondescription_11])
diff --git a/tests/dictionaries/10base_certificate_list_disabled/tiramisu/base.py b/tests/dictionaries/10base_certificate_list_disabled/tiramisu/base.py
deleted file mode 100644
index fe4ea88df..000000000
--- a/tests/dictionaries/10base_certificate_list_disabled/tiramisu/base.py
+++ /dev/null
@@ -1,42 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_6 = SymLinkOption(name="domain", opt=option_1)
-option_7 = StrOption(name="name", doc="name", default="certificate")
-option_8 = UsernameOption(name="owner", doc="owner", default="example")
-option_5 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_1, notraisepropertyerror=True), 'expected_0': ParamValue("example.net")})))
-optiondescription_4 = OptionDescription(name="certificate", doc="certificate", children=[option_6, option_7, option_8, option_5])
-optiondescription_4.impl_set_information('authority', "authority")
-optiondescription_4.impl_set_information('format', "cert_key")
-optiondescription_4.impl_set_information('type', "client")
-optiondescription_3 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_4])
-option_2 = BoolOption(name="activate", doc="activate", default=True)
-option_9 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_12 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_3, option_2, option_9])
-optiondescription_12.impl_set_information('type', "service")
-optiondescription_11 = OptionDescription(name="services", doc="services", children=[optiondescription_12], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_10, optiondescription_11])
diff --git a/tests/dictionaries/10check_base/dictionaries/rougail/00-base.yml b/tests/dictionaries/10check_base/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..e869b0a53
--- /dev/null
+++ b/tests/dictionaries/10check_base/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ int:
+ type: number
+ description: No change
+ params:
+ min_number: 0
+ max_number: 100
diff --git a/tests/dictionaries/10check_base/tiramisu/base.py b/tests/dictionaries/10check_base/tiramisu/base.py
index 5410ddf8c..f8392c2af 100644
--- a/tests/dictionaries/10check_base/tiramisu/base.py
+++ b/tests/dictionaries/10check_base/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
-option_3 = IntOption(name="int", doc="No change", min_number=0, max_number=100, properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_4 = IntOption(name="int", doc="No change", min_number=0, max_number=100, properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_base/tiramisu/multi.py b/tests/dictionaries/10check_base/tiramisu/multi.py
index 2bc20c94c..213af91de 100644
--- a/tests/dictionaries/10check_base/tiramisu/multi.py
+++ b/tests/dictionaries/10check_base/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
-option_3 = IntOption(name="int", doc="No change", min_number=0, max_number=100, properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
-option_6 = IntOption(name="int", doc="No change", min_number=0, max_number=100, properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_5 = IntOption(name="int", doc="No change", min_number=0, max_number=100, properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_10 = IntOption(name="int", doc="No change", min_number=0, max_number=100, properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/10check_base_target_optional/makedict/after.json b/tests/dictionaries/10check_base_target_optional/makedict/after.json
deleted file mode 100644
index bd8910427..000000000
--- a/tests/dictionaries/10check_base_target_optional/makedict/after.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "rougail.my_variable": {
- "owner": "default",
- "value": null
- }
-}
diff --git a/tests/dictionaries/10check_base_target_optional/makedict/base.json b/tests/dictionaries/10check_base_target_optional/makedict/base.json
deleted file mode 100644
index 9b3f9ac4b..000000000
--- a/tests/dictionaries/10check_base_target_optional/makedict/base.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "rougail.my_variable": null
-}
diff --git a/tests/dictionaries/10check_base_target_optional/makedict/before.json b/tests/dictionaries/10check_base_target_optional/makedict/before.json
deleted file mode 100644
index bd8910427..000000000
--- a/tests/dictionaries/10check_base_target_optional/makedict/before.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "rougail.my_variable": {
- "owner": "default",
- "value": null
- }
-}
diff --git a/tests/dictionaries/10check_base_target_optional/tiramisu/base.py b/tests/dictionaries/10check_base_target_optional/tiramisu/base.py
deleted file mode 100644
index f6e1e127c..000000000
--- a/tests/dictionaries/10check_base_target_optional/tiramisu/base.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
-optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_2])
diff --git a/tests/dictionaries/10check_base_target_optional/xml/00-base.xml b/tests/dictionaries/10check_base_target_optional/xml/00-base.xml
deleted file mode 100644
index 723d1f30d..000000000
--- a/tests/dictionaries/10check_base_target_optional/xml/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
- 0
- 100
- int
-
-
-
diff --git a/tests/dictionaries/10check_no_param/dictionaries/rougail/00-base.yml b/tests/dictionaries/10check_no_param/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4dd302bba
--- /dev/null
+++ b/tests/dictionaries/10check_no_param/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ int:
+ type: number
+ description: No change
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.int | valid_lower }}'
diff --git a/tests/dictionaries/10check_no_param/tiramisu/base.py b/tests/dictionaries/10check_no_param/tiramisu/base.py
index ee3f00791..b9885a99f 100644
--- a/tests/dictionaries/10check_no_param/tiramisu/base.py
+++ b/tests/dictionaries/10check_no_param/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,58 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
-option_3 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_lower, Params((ParamSelfOption(whole=False))), warnings_only=False)], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_rougail.general.int'] = "{{ rougail.general.int | valid_lower }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_4 = IntOption(name="int", doc="No change", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int': ParamSelfOption(whole=False)}))], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_no_param/tiramisu/multi.py b/tests/dictionaries/10check_no_param/tiramisu/multi.py
index b589b1a4e..2df67af89 100644
--- a/tests/dictionaries/10check_no_param/tiramisu/multi.py
+++ b/tests/dictionaries/10check_no_param/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,65 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
-option_3 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_lower, Params((ParamSelfOption(whole=False))), warnings_only=False)], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
-option_6 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_lower, Params((ParamSelfOption(whole=False))), warnings_only=False)], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_1.rougail.general.int'] = "{{ rougail.general.int | valid_lower }}"
+dict_env['validators_2.rougail.general.int'] = "{{ rougail.general.int | valid_lower }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_5 = IntOption(name="int", doc="No change", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int': ParamSelfOption(whole=False)}))], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_10 = IntOption(name="int", doc="No change", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int': ParamSelfOption(whole=False)}))], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/10check_option/makedict/after.json b/tests/dictionaries/10check_option/makedict/after.json
deleted file mode 100644
index 44ed70b45..000000000
--- a/tests/dictionaries/10check_option/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "b"
- },
- "rougail.general.int2": {
- "owner": "default",
- "value": 100
- },
- "rougail.general.int": {
- "owner": "default",
- "value": null
- }
-}
diff --git a/tests/dictionaries/10check_option/makedict/base.json b/tests/dictionaries/10check_option/makedict/base.json
deleted file mode 100644
index df55d4f3a..000000000
--- a/tests/dictionaries/10check_option/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "b",
- "rougail.general.int2": 100,
- "rougail.general.int": null
-}
diff --git a/tests/dictionaries/10check_option/makedict/before.json b/tests/dictionaries/10check_option/makedict/before.json
deleted file mode 100644
index 44ed70b45..000000000
--- a/tests/dictionaries/10check_option/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "b"
- },
- "rougail.general.int2": {
- "owner": "default",
- "value": 100
- },
- "rougail.general.int": {
- "owner": "default",
- "value": null
- }
-}
diff --git a/tests/dictionaries/10check_option/tiramisu/base.py b/tests/dictionaries/10check_option/tiramisu/base.py
deleted file mode 100644
index 138fe8002..000000000
--- a/tests/dictionaries/10check_option/tiramisu/base.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
-option_3 = IntOption(name="int2", doc="No change", default=100, properties=frozenset({"mandatory", "normal"}))
-option_4 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_lower, Params((ParamSelfOption(whole=False)), kwargs={'mini': ParamValue(0), 'maxi': ParamOption(option_3)}), warnings_only=False)], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/10check_option/tmp/base.py b/tests/dictionaries/10check_option/tmp/base.py
new file mode 100644
index 000000000..09d0fbc77
--- /dev/null
+++ b/tests/dictionaries/10check_option/tmp/base.py
@@ -0,0 +1,71 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value)
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_rougail.general.int'] = "{{ rougail.general.int | valid_lower(mini=0, maxi=rougail.general.int2) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_4 = IntOption(name="int2", doc="No change", default=100, properties=frozenset({"mandatory", "normal"}))
+option_5 = IntOption(name="int", doc="No change", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int': ParamSelfOption(whole=False), 'rougail.general.int2': ParamOption(option_4)}))], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_optional/dictionaries/rougail/00-base.yml b/tests/dictionaries/10check_optional/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..b728b91c3
--- /dev/null
+++ b/tests/dictionaries/10check_optional/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ int:
+ type: number
+ description: No change
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.int | valid_differ(rougail.general.int2) }}'
+ params:
+ rougail.general.int2:
+ type: variable
+ variable: rougail.general.int2
+ optional: true
+ - type: jinja
+ jinja: '{{ rougail.general.int | valid_differ(__int3) }}'
+ params:
+ __int3:
+ type: variable
+ variable: rougail.general.int3
+ optional: true
+ int2:
+ type: number
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries/10check_optional/tiramisu/base.py b/tests/dictionaries/10check_optional/tiramisu/base.py
index e8a0e1747..04b61a22d 100644
--- a/tests/dictionaries/10check_optional/tiramisu/base.py
+++ b/tests/dictionaries/10check_optional/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
-option_4 = IntOption(name="int2", doc="No change", properties=frozenset({"normal"}))
-option_3 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False)], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_rougail.general.int'] = "{{ rougail.general.int | valid_differ(rougail.general.int2) }}"
+dict_env['validators_rougail.general.int_0'] = "{{ rougail.general.int | valid_differ(__int3) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_5 = IntOption(name="int2", doc="No change", properties=frozenset({"normal"}))
+option_4 = IntOption(name="int", doc="No change", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int2': ParamOption(option_5), 'rougail.general.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int': ParamSelfOption(whole=False)}))], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_optional/tiramisu/multi.py b/tests/dictionaries/10check_optional/tiramisu/multi.py
index 21c6c207d..08c3b5164 100644
--- a/tests/dictionaries/10check_optional/tiramisu/multi.py
+++ b/tests/dictionaries/10check_optional/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
-option_4 = IntOption(name="int2", doc="No change", properties=frozenset({"normal"}))
-option_3 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False)], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
-option_8 = IntOption(name="int2", doc="No change", properties=frozenset({"normal"}))
-option_7 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_8))), warnings_only=False)], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_1.rougail.general.int'] = "{{ rougail.general.int | valid_differ(rougail.general.int2) }}"
+dict_env['validators_1.rougail.general.int_0'] = "{{ rougail.general.int | valid_differ(__int3) }}"
+dict_env['validators_2.rougail.general.int'] = "{{ rougail.general.int | valid_differ(rougail.general.int2) }}"
+dict_env['validators_2.rougail.general.int_0'] = "{{ rougail.general.int | valid_differ(__int3) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_6 = IntOption(name="int2", doc="No change", properties=frozenset({"normal"}))
+option_5 = IntOption(name="int", doc="No change", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int2': ParamOption(option_6), 'rougail.general.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int': ParamSelfOption(whole=False)}))], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_12 = IntOption(name="int2", doc="No change", properties=frozenset({"normal"}))
+option_11 = IntOption(name="int", doc="No change", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int2': ParamOption(option_12), 'rougail.general.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int': ParamSelfOption(whole=False)}))], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10check_valid_differ/dictionaries/rougail/00-base.yml b/tests/dictionaries/10check_valid_differ/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..e1e723960
--- /dev/null
+++ b/tests/dictionaries/10check_valid_differ/dictionaries/rougail/00-base.yml
@@ -0,0 +1,15 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ validators:
+ - type: jinja
+ jinja: |
+ {{ rougail.general.mode_conteneur_actif | valid_differ(rougail.general.mode_conteneur_actif1) }}
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
diff --git a/tests/dictionaries/10check_valid_differ/tiramisu/base.py b/tests/dictionaries/10check_valid_differ/tiramisu/base.py
index 1ab373570..f9264c4aa 100644
--- a/tests/dictionaries/10check_valid_differ/tiramisu/base.py
+++ b/tests/dictionaries/10check_valid_differ/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,58 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif | valid_differ(rougail.general.mode_conteneur_actif1) }}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamSelfOption(whole=False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)}))], properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_valid_differ/tiramisu/multi.py b/tests/dictionaries/10check_valid_differ/tiramisu/multi.py
index 76758ad99..2147bb8c8 100644
--- a/tests/dictionaries/10check_valid_differ/tiramisu/multi.py
+++ b/tests/dictionaries/10check_valid_differ/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,65 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_6))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_1.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif | valid_differ(rougail.general.mode_conteneur_actif1) }}\n"
+dict_env['validators_2.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif | valid_differ(rougail.general.mode_conteneur_actif1) }}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamSelfOption(whole=False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)}))], properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamSelfOption(whole=False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_10)}))], properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/10check_valid_differ_add/dictionaries/rougail/00-base.yml b/tests/dictionaries/10check_valid_differ_add/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..b0a01db0d
--- /dev/null
+++ b/tests/dictionaries/10check_valid_differ_add/dictionaries/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ default: oui
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif3 | valid_differ(rougail.general.mode_conteneur_actif1)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries/10check_valid_differ_add/dictionaries/rougail/01-base.yml b/tests/dictionaries/10check_valid_differ_add/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..f94328eae
--- /dev/null
+++ b/tests/dictionaries/10check_valid_differ_add/dictionaries/rougail/01-base.yml
@@ -0,0 +1,11 @@
+general:
+ mode_conteneur_actif3:
+ redefine: true
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1)
+ }}'
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries/10check_valid_differ_add/tiramisu/base.py b/tests/dictionaries/10check_valid_differ_add/tiramisu/base.py
index 6500ab4a8..519b75e74 100644
--- a/tests/dictionaries/10check_valid_differ_add/tiramisu/base.py
+++ b/tests/dictionaries/10check_valid_differ_add/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,61 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_rougail.general.mode_conteneur_actif3'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1) }}"
+dict_env['validators_rougail.general.mode_conteneur_actif3_0'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif3': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.mode_conteneur_actif3_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif3': ParamSelfOption(whole=False)}))], properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_valid_differ_add/tiramisu/multi.py b/tests/dictionaries/10check_valid_differ_add/tiramisu/multi.py
index de29aa266..385f9db7c 100644
--- a/tests/dictionaries/10check_valid_differ_add/tiramisu/multi.py
+++ b/tests/dictionaries/10check_valid_differ_add/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,71 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_9 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_8))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_8))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_9))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7, option_8, option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_1.rougail.general.mode_conteneur_actif3'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1) }}"
+dict_env['validators_1.rougail.general.mode_conteneur_actif3_0'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2) }}"
+dict_env['validators_2.rougail.general.mode_conteneur_actif3'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1) }}"
+dict_env['validators_2.rougail.general.mode_conteneur_actif3_0'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif3': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.mode_conteneur_actif3_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif3': ParamSelfOption(whole=False)}))], properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_13 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif3': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.mode_conteneur_actif3_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif3': ParamSelfOption(whole=False)}))], properties=frozenset({"mandatory", "normal"}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11, option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/10check_valid_differ_removecheck/dictionaries/rougail/00-base.yml b/tests/dictionaries/10check_valid_differ_removecheck/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..b0a01db0d
--- /dev/null
+++ b/tests/dictionaries/10check_valid_differ_removecheck/dictionaries/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ default: oui
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif3 | valid_differ(rougail.general.mode_conteneur_actif1)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries/10check_valid_differ_removecheck/dictionaries/rougail/01-base.yml b/tests/dictionaries/10check_valid_differ_removecheck/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..d543b49dc
--- /dev/null
+++ b/tests/dictionaries/10check_valid_differ_removecheck/dictionaries/rougail/01-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif3:
+ redefine: true
+ default: oui
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1)
+ }}'
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/base.py b/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/base.py
index a5fa3b032..519b75e74 100644
--- a/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/base.py
+++ b/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,61 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_rougail.general.mode_conteneur_actif3'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1) }}"
+dict_env['validators_rougail.general.mode_conteneur_actif3_0'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif3': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.mode_conteneur_actif3_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif3': ParamSelfOption(whole=False)}))], properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/multi.py b/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/multi.py
index 10b8fe33d..385f9db7c 100644
--- a/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/multi.py
+++ b/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,71 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_9 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_8))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_9))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7, option_8, option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_1.rougail.general.mode_conteneur_actif3'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1) }}"
+dict_env['validators_1.rougail.general.mode_conteneur_actif3_0'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2) }}"
+dict_env['validators_2.rougail.general.mode_conteneur_actif3'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1) }}"
+dict_env['validators_2.rougail.general.mode_conteneur_actif3_0'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif3': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.mode_conteneur_actif3_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif3': ParamSelfOption(whole=False)}))], properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_13 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif3': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.mode_conteneur_actif3_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif3': ParamSelfOption(whole=False)}))], properties=frozenset({"mandatory", "normal"}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11, option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/10check_valid_in_network/dictionaries/rougail/00-base.yml b/tests/dictionaries/10check_valid_in_network/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..db9d031db
--- /dev/null
+++ b/tests/dictionaries/10check_valid_in_network/dictionaries/rougail/00-base.yml
@@ -0,0 +1,25 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ adresse_ip_eth0:
+ type: local_ip
+ description: Adresse IP de la carte
+ mandatory: true
+ mode: basic
+ adresse_netmask_eth0:
+ type: netmask
+ description: Masque de sous réseau de la carte
+ mandatory: true
+ mode: basic
+ adresse_ip:
+ type: local_ip
+ description: IP
+ mandatory: true
+ mode: basic
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0, rougail.general.adresse_netmask_eth0) }}'
diff --git a/tests/dictionaries/10check_valid_in_network/tiramisu/base.py b/tests/dictionaries/10check_valid_in_network/tiramisu/base.py
index 9ef50e39d..53b72214d 100644
--- a/tests/dictionaries/10check_valid_in_network/tiramisu/base.py
+++ b/tests/dictionaries/10check_valid_in_network/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-option_4 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", properties=frozenset({"basic", "mandatory"}))
-option_5 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func.valid_in_network, Params((ParamSelfOption(whole=False), ParamOption(option_3), ParamOption(option_4))), warnings_only=True)], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"basic"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_rougail.general.adresse_ip'] = "{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0, rougail.general.adresse_netmask_eth0) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_4 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+option_5 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", properties=frozenset({"basic", "mandatory"}))
+option_6 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.adresse_ip"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip': ParamSelfOption(whole=False), 'rougail.general.adresse_ip_eth0': ParamOption(option_4), 'rougail.general.adresse_netmask_eth0': ParamOption(option_5)}))], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_valid_in_network/tiramisu/multi.py b/tests/dictionaries/10check_valid_in_network/tiramisu/multi.py
index df162cf3d..b118c1e11 100644
--- a/tests/dictionaries/10check_valid_in_network/tiramisu/multi.py
+++ b/tests/dictionaries/10check_valid_in_network/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-option_4 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", properties=frozenset({"basic", "mandatory"}))
-option_5 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func.valid_in_network, Params((ParamSelfOption(whole=False), ParamOption(option_3), ParamOption(option_4))), warnings_only=True)], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"basic"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_8 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-option_9 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", properties=frozenset({"basic", "mandatory"}))
-option_10 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func.valid_in_network, Params((ParamSelfOption(whole=False), ParamOption(option_8), ParamOption(option_9))), warnings_only=True)], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7, option_8, option_9, option_10], properties=frozenset({"basic"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"basic"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_1.rougail.general.adresse_ip'] = "{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0, rougail.general.adresse_netmask_eth0) }}"
+dict_env['validators_2.rougail.general.adresse_ip'] = "{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0, rougail.general.adresse_netmask_eth0) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_5 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+option_6 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", properties=frozenset({"basic", "mandatory"}))
+option_7 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.adresse_ip"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip': ParamSelfOption(whole=False), 'rougail.general.adresse_ip_eth0': ParamOption(option_5), 'rougail.general.adresse_netmask_eth0': ParamOption(option_6)}))], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6, option_7], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_12 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+option_13 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", properties=frozenset({"basic", "mandatory"}))
+option_14 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.adresse_ip"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip': ParamSelfOption(whole=False), 'rougail.general.adresse_ip_eth0': ParamOption(option_12), 'rougail.general.adresse_netmask_eth0': ParamOption(option_13)}))], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11, option_12, option_13, option_14], properties=frozenset({"basic"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"basic"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/10check_valid_in_network_cidr/dictionaries/rougail/00-base.yml b/tests/dictionaries/10check_valid_in_network_cidr/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..3b7068f3f
--- /dev/null
+++ b/tests/dictionaries/10check_valid_in_network_cidr/dictionaries/rougail/00-base.yml
@@ -0,0 +1,20 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ adresse_ip_eth0:
+ type: cidr
+ description: Adresse IP de la carte
+ mandatory: true
+ mode: basic
+ adresse_ip:
+ type: local_ip
+ description: IP
+ mandatory: true
+ mode: basic
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/base.py b/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/base.py
index 367d0fdc8..23c03a1a8 100644
--- a/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/base.py
+++ b/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", cidr=True, properties=frozenset({"basic", "mandatory"}))
-option_4 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func.valid_in_network, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=True)], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"basic"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_rougail.general.adresse_ip'] = "{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_4 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", cidr=True, properties=frozenset({"basic", "mandatory"}))
+option_5 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.adresse_ip"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip': ParamSelfOption(whole=False), 'rougail.general.adresse_ip_eth0': ParamOption(option_4)}))], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/multi.py b/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/multi.py
index b11b4c7ef..59dcb9742 100644
--- a/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/multi.py
+++ b/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", cidr=True, properties=frozenset({"basic", "mandatory"}))
-option_4 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func.valid_in_network, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=True)], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"basic"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_7 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", cidr=True, properties=frozenset({"basic", "mandatory"}))
-option_8 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func.valid_in_network, Params((ParamSelfOption(whole=False), ParamOption(option_7))), warnings_only=True)], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"basic"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"basic"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_1.rougail.general.adresse_ip'] = "{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0) }}"
+dict_env['validators_2.rougail.general.adresse_ip'] = "{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_5 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", cidr=True, properties=frozenset({"basic", "mandatory"}))
+option_6 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.adresse_ip"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip': ParamSelfOption(whole=False), 'rougail.general.adresse_ip_eth0': ParamOption(option_5)}))], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_11 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", cidr=True, properties=frozenset({"basic", "mandatory"}))
+option_12 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.adresse_ip"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip': ParamSelfOption(whole=False), 'rougail.general.adresse_ip_eth0': ParamOption(option_11)}))], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"basic"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10check_valid_ipnetmask/dictionaries/rougail/00-base.yml b/tests/dictionaries/10check_valid_ipnetmask/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..32a6e15c8
--- /dev/null
+++ b/tests/dictionaries/10check_valid_ipnetmask/dictionaries/rougail/00-base.yml
@@ -0,0 +1,20 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ adresse_ip_eth0:
+ type: local_ip
+ description: Adresse IP de la carte
+ mandatory: true
+ mode: basic
+ adresse_netmask_eth0:
+ type: netmask
+ description: Masque de sous réseau de la carte
+ mandatory: true
+ mode: basic
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.adresse_netmask_eth0 | valid_ipnetmask(rougail.general.adresse_ip_eth0)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries/10check_valid_ipnetmask/tiramisu/base.py b/tests/dictionaries/10check_valid_ipnetmask/tiramisu/base.py
index e775c997e..9a902e68a 100644
--- a/tests/dictionaries/10check_valid_ipnetmask/tiramisu/base.py
+++ b/tests/dictionaries/10check_valid_ipnetmask/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-option_4 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", validators=[Calculation(func.valid_ipnetmask, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=True)], properties=frozenset({"basic", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"basic"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_rougail.general.adresse_netmask_eth0'] = "{{ rougail.general.adresse_netmask_eth0 | valid_ipnetmask(rougail.general.adresse_ip_eth0) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_4 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+option_5 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.adresse_netmask_eth0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip_eth0': ParamOption(option_4), 'rougail.general.adresse_netmask_eth0': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_valid_ipnetmask/tiramisu/multi.py b/tests/dictionaries/10check_valid_ipnetmask/tiramisu/multi.py
index 98ebcbb07..b20aa469e 100644
--- a/tests/dictionaries/10check_valid_ipnetmask/tiramisu/multi.py
+++ b/tests/dictionaries/10check_valid_ipnetmask/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-option_4 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", validators=[Calculation(func.valid_ipnetmask, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=True)], properties=frozenset({"basic", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"basic"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_7 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-option_8 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", validators=[Calculation(func.valid_ipnetmask, Params((ParamSelfOption(whole=False), ParamOption(option_7))), warnings_only=True)], properties=frozenset({"basic", "mandatory"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"basic"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"basic"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['validators_1.rougail.general.adresse_netmask_eth0'] = "{{ rougail.general.adresse_netmask_eth0 | valid_ipnetmask(rougail.general.adresse_ip_eth0) }}"
+dict_env['validators_2.rougail.general.adresse_netmask_eth0'] = "{{ rougail.general.adresse_netmask_eth0 | valid_ipnetmask(rougail.general.adresse_ip_eth0) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_5 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+option_6 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.adresse_netmask_eth0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip_eth0': ParamOption(option_5), 'rougail.general.adresse_netmask_eth0': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_11 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+option_12 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.adresse_netmask_eth0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip_eth0': ParamOption(option_11), 'rougail.general.adresse_netmask_eth0': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"basic"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10check_valid_jinja/dictionaries/rougail/00-base.yml b/tests/dictionaries/10check_valid_jinja/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..3b821ee0c
--- /dev/null
+++ b/tests/dictionaries/10check_valid_jinja/dictionaries/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ validators:
+ - type: jinja
+ jinja: |
+ {% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1 %}
+ the value must be different than "{{ rougail.general.mode_conteneur_actif}}"
+ {% endif %}
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/10check_valid_jinja/tiramisu/base.py b/tests/dictionaries/10check_valid_jinja/tiramisu/base.py
index ca3457046..f437b0ec6 100644
--- a/tests/dictionaries/10check_valid_jinja/tiramisu/base.py
+++ b/tests/dictionaries/10check_valid_jinja/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from jinja2 import StrictUndefined, DictLoader
from jinja2.sandbox import SandboxedEnvironment
from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
kw = {}
for key, value in kwargs.items():
if '.' in key:
@@ -37,24 +35,40 @@ def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwa
c_kw[var] = value
else:
kw[key] = value
- values = ENV.get_template(__internal_jinja).render(kw)
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
convert = CONVERT_OPTION[__internal_type].get('func', str)
if __internal_multi:
- return [convert(val) for val in values.split(',')]
- return convert(values)
-def valid_with_jinja(value, **kwargs):
- kwargs[kwargs.pop('__internal_key')] = value
- value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
if value:
- raise ValueError(value)
-func.jinja_to_function = jinja_to_function
-func.valid_with_jinja = valid_with_jinja
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
dict_env = {}
-dict_env['rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1 %}the value must be different than \"{{ rougail.general.mode_conteneur_actif }}\"{% endif %}"
+dict_env['validators_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1 %}\nthe value must be different than \"{{ rougail.general.mode_conteneur_actif}}\"\n{% endif %}\n"
ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
ENV.compile_templates('jinja_caches', zip=None)
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func.valid_with_jinja, Params((ParamSelfOption(whole=False)), kwargs={'__internal_jinja': ParamValue("rougail.general.mode_conteneur_actif"), '__internal_key': ParamValue("rougail.general.mode_conteneur_actif"), 'rougail.general.mode_conteneur_actif1': ParamOption(option_3)}), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamSelfOption(whole=False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)}))], properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_valid_jinja/tiramisu/multi.py b/tests/dictionaries/10check_valid_jinja/tiramisu/multi.py
index 8074f62b9..3296279fc 100644
--- a/tests/dictionaries/10check_valid_jinja/tiramisu/multi.py
+++ b/tests/dictionaries/10check_valid_jinja/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from jinja2 import StrictUndefined, DictLoader
from jinja2.sandbox import SandboxedEnvironment
from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
kw = {}
for key, value in kwargs.items():
if '.' in key:
@@ -37,31 +35,47 @@ def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwa
c_kw[var] = value
else:
kw[key] = value
- values = ENV.get_template(__internal_jinja).render(kw)
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
convert = CONVERT_OPTION[__internal_type].get('func', str)
if __internal_multi:
- return [convert(val) for val in values.split(',')]
- return convert(values)
-def valid_with_jinja(value, **kwargs):
- kwargs[kwargs.pop('__internal_key')] = value
- value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
if value:
- raise ValueError(value)
-func.jinja_to_function = jinja_to_function
-func.valid_with_jinja = valid_with_jinja
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
dict_env = {}
-dict_env['1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1 %}the value must be different than \"{{ rougail.general.mode_conteneur_actif }}\"{% endif %}"
-dict_env['2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1 %}the value must be different than \"{{ rougail.general.mode_conteneur_actif }}\"{% endif %}"
+dict_env['validators_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1 %}\nthe value must be different than \"{{ rougail.general.mode_conteneur_actif}}\"\n{% endif %}\n"
+dict_env['validators_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1 %}\nthe value must be different than \"{{ rougail.general.mode_conteneur_actif}}\"\n{% endif %}\n"
ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
ENV.compile_templates('jinja_caches', zip=None)
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func.valid_with_jinja, Params((ParamSelfOption(whole=False)), kwargs={'__internal_jinja': ParamValue("1.rougail.general.mode_conteneur_actif"), '__internal_key': ParamValue("rougail.general.mode_conteneur_actif"), 'rougail.general.mode_conteneur_actif1': ParamOption(option_3)}), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func.valid_with_jinja, Params((ParamSelfOption(whole=False)), kwargs={'__internal_jinja': ParamValue("2.rougail.general.mode_conteneur_actif"), '__internal_key': ParamValue("rougail.general.mode_conteneur_actif"), 'rougail.general.mode_conteneur_actif1': ParamOption(option_6)}), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamSelfOption(whole=False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)}))], properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamSelfOption(whole=False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_10)}))], properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/10fill_information/tiramisu/base.py b/tests/dictionaries/10fill_information/tiramisu/base.py
deleted file mode 100644
index 253008ebb..000000000
--- a/tests/dictionaries/10fill_information/tiramisu/base.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamInformation("test_information", None)))), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
diff --git a/tests/dictionaries/10fill_information_multi/tiramisu/base.py b/tests/dictionaries/10fill_information_multi/tiramisu/base.py
deleted file mode 100644
index 229cf47b2..000000000
--- a/tests/dictionaries/10fill_information_multi/tiramisu/base.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=[Calculation(func.calc_val, Params((ParamInformation("test_information", []))))], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
diff --git a/tests/dictionaries/10fill_option_information/tiramisu/base.py b/tests/dictionaries/10fill_option_information/tiramisu/base.py
deleted file mode 100644
index 4c8ae4107..000000000
--- a/tests/dictionaries/10fill_option_information/tiramisu/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="variable", doc="No change", properties=frozenset({"normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamInformation("test_information", None, option=option_2)))), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/10fill_option_od_information/tiramisu/base.py b/tests/dictionaries/10fill_option_od_information/tiramisu/base.py
deleted file mode 100644
index c89f8b333..000000000
--- a/tests/dictionaries/10fill_option_od_information/tiramisu/base.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_4 = StrOption(name="variable", doc="No change", properties=frozenset({"normal"}))
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamInformation("test_information", None, option=option_4)))), properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="od", doc="od", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/00load_autofreeze/__init__.py b/tests/dictionaries/10fill_optional/__init__.py
similarity index 100%
rename from tests/dictionaries/00load_autofreeze/__init__.py
rename to tests/dictionaries/10fill_optional/__init__.py
diff --git a/tests/dictionaries/10fill_optional/dictionaries/rougail/00-base.yml b/tests/dictionaries/10fill_optional/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..7b487a4c4
--- /dev/null
+++ b/tests/dictionaries/10fill_optional/dictionaries/rougail/00-base.yml
@@ -0,0 +1,30 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: |
+ {% if __mode_conteneur_actif4 is defined %}
+ {{ __mode_conteneur_actif4 }}
+ {% elif __mode_conteneur_actif3 is defined %}
+ {{ __mode_conteneur_actif3 }}
+ {% else %}
+ {{ rougail.general.mode_conteneur_actif1 }}
+ {% endif %}
+ params:
+ __mode_conteneur_actif4:
+ type: variable
+ variable: rougail.general.mode_conteneur_actif4
+ optional: true
+ __mode_conteneur_actif3:
+ type: variable
+ variable: rougail.general.mode_conteneur_actif3
+ optional: true
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
diff --git a/tests/dictionaries/01auto_base/makedict/after.json b/tests/dictionaries/10fill_optional/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01auto_base/makedict/after.json
rename to tests/dictionaries/10fill_optional/makedict/after.json
diff --git a/tests/dictionaries/01auto_base/makedict/base.json b/tests/dictionaries/10fill_optional/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01auto_base/makedict/base.json
rename to tests/dictionaries/10fill_optional/makedict/base.json
diff --git a/tests/dictionaries/01auto_base/makedict/before.json b/tests/dictionaries/10fill_optional/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01auto_base/makedict/before.json
rename to tests/dictionaries/10fill_optional/makedict/before.json
diff --git a/tests/dictionaries/10fill_optional/tiramisu/base.py b/tests/dictionaries/10fill_optional/tiramisu/base.py
new file mode 100644
index 000000000..c369f9305
--- /dev/null
+++ b/tests/dictionaries/10fill_optional/tiramisu/base.py
@@ -0,0 +1,74 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{% if __mode_conteneur_actif4 is defined %}\n{{ __mode_conteneur_actif4 }}\n{% elif __mode_conteneur_actif3 is defined %}\n{{ __mode_conteneur_actif3 }}\n{% else %}\n{{ rougail.general.mode_conteneur_actif1 }}\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10fill_optional/tiramisu/multi.py b/tests/dictionaries/10fill_optional/tiramisu/multi.py
new file mode 100644
index 000000000..8a06b710a
--- /dev/null
+++ b/tests/dictionaries/10fill_optional/tiramisu/multi.py
@@ -0,0 +1,81 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{% if __mode_conteneur_actif4 is defined %}\n{{ __mode_conteneur_actif4 }}\n{% elif __mode_conteneur_actif3 is defined %}\n{{ __mode_conteneur_actif3 }}\n{% else %}\n{{ rougail.general.mode_conteneur_actif1 }}\n{% endif %}\n"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{% if __mode_conteneur_actif4 is defined %}\n{{ __mode_conteneur_actif4 }}\n{% elif __mode_conteneur_actif3 is defined %}\n{{ __mode_conteneur_actif3 }}\n{% else %}\n{{ rougail.general.mode_conteneur_actif1 }}\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_10)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01fill_optional/xml/00-base.xml b/tests/dictionaries/10fill_optional/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01fill_optional/xml/00-base.xml
rename to tests/dictionaries/10fill_optional/xml/00-base.xml
diff --git a/tests/dictionaries/00load_autofreezeexpert/__init__.py b/tests/dictionaries/10fill_quote/__init__.py
similarity index 100%
rename from tests/dictionaries/00load_autofreezeexpert/__init__.py
rename to tests/dictionaries/10fill_quote/__init__.py
diff --git a/tests/dictionaries/10fill_quote/dictionaries/rougail/00-base.yml b/tests/dictionaries/10fill_quote/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..fe8245e01
--- /dev/null
+++ b/tests/dictionaries/10fill_quote/dictionaries/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "quote''" | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "quote\"" | calc_val }}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "quote\"''" | calc_val }}'
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "quote\"\\''" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/01fill_quote/makedict/after.json b/tests/dictionaries/10fill_quote/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01fill_quote/makedict/after.json
rename to tests/dictionaries/10fill_quote/makedict/after.json
diff --git a/tests/dictionaries/01fill_quote/makedict/base.json b/tests/dictionaries/10fill_quote/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01fill_quote/makedict/base.json
rename to tests/dictionaries/10fill_quote/makedict/base.json
diff --git a/tests/dictionaries/01fill_quote/makedict/before.json b/tests/dictionaries/10fill_quote/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01fill_quote/makedict/before.json
rename to tests/dictionaries/10fill_quote/makedict/before.json
diff --git a/tests/dictionaries/10fill_quote/tiramisu/base.py b/tests/dictionaries/10fill_quote/tiramisu/base.py
new file mode 100644
index 000000000..87bb4b970
--- /dev/null
+++ b/tests/dictionaries/10fill_quote/tiramisu/base.py
@@ -0,0 +1,79 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"quote'\" | calc_val }}"
+dict_env['default_rougail.general.mode_conteneur_actif1'] = "{{ \"quote\\\"\" | calc_val }}"
+dict_env['default_rougail.general.mode_conteneur_actif2'] = "{{ \"quote\\\"'\" | calc_val }}"
+dict_env['default_rougail.general.mode_conteneur_actif3'] = "{{ \"quote\\\"\\\\'\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10fill_quote/tiramisu/multi.py b/tests/dictionaries/10fill_quote/tiramisu/multi.py
new file mode 100644
index 000000000..19ba4bcbb
--- /dev/null
+++ b/tests/dictionaries/10fill_quote/tiramisu/multi.py
@@ -0,0 +1,91 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"quote'\" | calc_val }}"
+dict_env['default_1.rougail.general.mode_conteneur_actif1'] = "{{ \"quote\\\"\" | calc_val }}"
+dict_env['default_1.rougail.general.mode_conteneur_actif2'] = "{{ \"quote\\\"'\" | calc_val }}"
+dict_env['default_1.rougail.general.mode_conteneur_actif3'] = "{{ \"quote\\\"\\\\'\" | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"quote'\" | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif1'] = "{{ \"quote\\\"\" | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif2'] = "{{ \"quote\\\"'\" | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif3'] = "{{ \"quote\\\"\\\\'\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="mode_conteneur_actif3", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_12 = StrOption(name="mode_conteneur_actif1", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode_conteneur_actif3", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11, option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/01fill_quote/xml/00-base.xml b/tests/dictionaries/10fill_quote/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01fill_quote/xml/00-base.xml
rename to tests/dictionaries/10fill_quote/xml/00-base.xml
diff --git a/tests/dictionaries/10fill_target_information/dictionaries/rougail/00-base.yml b/tests/dictionaries/10fill_target_information/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..5d919c81c
--- /dev/null
+++ b/tests/dictionaries/10fill_target_information/dictionaries/rougail/00-base.yml
@@ -0,0 +1,14 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __information.rougail.general.mode_conteneur_actif.test_information
+ | calc_val }}'
+ params:
+ __information.rougail.general.mode_conteneur_actif.test_information:
+ type: information
+ information: test_information
+ variable: rougail.general.mode_conteneur_actif
+version: '1.0'
diff --git a/tests/dictionaries/10fill_target_information/tiramisu/base.py b/tests/dictionaries/10fill_target_information/tiramisu/base.py
index d75642508..031f1e381 100644
--- a/tests/dictionaries/10fill_target_information/tiramisu/base.py
+++ b/tests/dictionaries/10fill_target_information/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,57 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamSelfInformation("test_information", None)))), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.mode_conteneur_actif.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.mode_conteneur_actif.test_information': ParamSelfInformation("test_information", None)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10fill_target_information/tiramisu/multi.py b/tests/dictionaries/10fill_target_information/tiramisu/multi.py
index 3504407b0..54372aeeb 100644
--- a/tests/dictionaries/10fill_target_information/tiramisu/multi.py
+++ b/tests/dictionaries/10fill_target_information/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamSelfInformation("test_information", None)))), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamSelfInformation("test_information", None)))), properties=frozenset({"normal"}))
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.mode_conteneur_actif.test_information | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.mode_conteneur_actif.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.mode_conteneur_actif.test_information': ParamSelfInformation("test_information", None)})), properties=frozenset({"normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.mode_conteneur_actif.test_information': ParamSelfInformation("test_information", None)})), properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/00load_autosave/__init__.py b/tests/dictionaries/10fill_target_optional/__init__.py
similarity index 100%
rename from tests/dictionaries/00load_autosave/__init__.py
rename to tests/dictionaries/10fill_target_optional/__init__.py
diff --git a/tests/dictionaries/10fill_target_optional/dictionaries/rougail/00-base.yml b/tests/dictionaries/10fill_target_optional/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..8d14352b8
--- /dev/null
+++ b/tests/dictionaries/10fill_target_optional/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01fill_target_optional/makedict/after.json b/tests/dictionaries/10fill_target_optional/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01fill_target_optional/makedict/after.json
rename to tests/dictionaries/10fill_target_optional/makedict/after.json
diff --git a/tests/dictionaries/01fill_target_optional/makedict/base.json b/tests/dictionaries/10fill_target_optional/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01fill_target_optional/makedict/base.json
rename to tests/dictionaries/10fill_target_optional/makedict/base.json
diff --git a/tests/dictionaries/01fill_target_optional/makedict/before.json b/tests/dictionaries/10fill_target_optional/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01fill_target_optional/makedict/before.json
rename to tests/dictionaries/10fill_target_optional/makedict/before.json
diff --git a/tests/dictionaries/10fill_target_optional/tiramisu/base.py b/tests/dictionaries/10fill_target_optional/tiramisu/base.py
new file mode 100644
index 000000000..da03bcb10
--- /dev/null
+++ b/tests/dictionaries/10fill_target_optional/tiramisu/base.py
@@ -0,0 +1,25 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10fill_target_optional/tiramisu/multi.py b/tests/dictionaries/10fill_target_optional/tiramisu/multi.py
new file mode 100644
index 000000000..d94c06868
--- /dev/null
+++ b/tests/dictionaries/10fill_target_optional/tiramisu/multi.py
@@ -0,0 +1,30 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01fill_target_optional/xml/00-base.xml b/tests/dictionaries/10fill_target_optional/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01fill_target_optional/xml/00-base.xml
rename to tests/dictionaries/10fill_target_optional/xml/00-base.xml
diff --git a/tests/dictionaries/10frozenifin_unknown_valid_enum_number/dictionaries/rougail/00-base.yml b/tests/dictionaries/10frozenifin_unknown_valid_enum_number/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..61723337b
--- /dev/null
+++ b/tests/dictionaries/10frozenifin_unknown_valid_enum_number/dictionaries/rougail/00-base.yml
@@ -0,0 +1,28 @@
+---
+version: '1.0'
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: enumvar
+ help: bla bla bla
+ default: 1
+ choices:
+ - 1
+ - 2
+ - 3
+ test_variable:
+ type: number
+ description: test variable
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.enumfam.enumvar == "4" %}
+ rougail.enumfam.enumvar is 4
+ {% endif %}
diff --git a/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/base.py b/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/base.py
index b1104b46f..9e712b162 100644
--- a/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/base.py
+++ b/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-option_5 = IntOption(name="test_variable", doc="test variable", properties=frozenset({"expert"}))
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4, option_5], properties=frozenset({"expert"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_rougail.enumfam.test_variable'] = "{% if rougail.enumfam.enumvar == \"4\" %}\nrougail.enumfam.enumvar is 4\n{% endif %}\n"
+dict_env['frozen_rougail.enumfam.test_variable'] = "{% if rougail.enumfam.enumvar == \"4\" %}\nrougail.enumfam.enumvar is 4\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
+option_5.impl_set_information('help', "bla bla bla")
+option_6 = IntOption(name="test_variable", doc="test variable", properties=frozenset({"expert", "force_default_on_freeze", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.enumfam.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.enumfam.enumvar': ParamOption(option_5)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.enumfam.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.enumfam.enumvar': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5, option_6], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/multi.py b/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/multi.py
index d2fc9d96f..bfe71389d 100644
--- a/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/multi.py
+++ b/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,73 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-option_5 = IntOption(name="test_variable", doc="test variable", properties=frozenset({"expert"}))
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4, option_5], properties=frozenset({"expert"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7], properties=frozenset({"expert"}))
-option_9 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
-option_9.impl_set_information('help', "bla bla bla")
-option_10 = IntOption(name="test_variable", doc="test variable", properties=frozenset({"expert"}))
-optiondescription_8 = OptionDescription(name="enumfam", doc="enumfam", children=[option_9, option_10], properties=frozenset({"expert"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6, optiondescription_8], properties=frozenset({"expert"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_1.rougail.enumfam.test_variable'] = "{% if rougail.enumfam.enumvar == \"4\" %}\nrougail.enumfam.enumvar is 4\n{% endif %}\n"
+dict_env['frozen_1.rougail.enumfam.test_variable'] = "{% if rougail.enumfam.enumvar == \"4\" %}\nrougail.enumfam.enumvar is 4\n{% endif %}\n"
+dict_env['hidden_2.rougail.enumfam.test_variable'] = "{% if rougail.enumfam.enumvar == \"4\" %}\nrougail.enumfam.enumvar is 4\n{% endif %}\n"
+dict_env['frozen_2.rougail.enumfam.test_variable'] = "{% if rougail.enumfam.enumvar == \"4\" %}\nrougail.enumfam.enumvar is 4\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_6 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
+option_6.impl_set_information('help', "bla bla bla")
+option_7 = IntOption(name="test_variable", doc="test variable", properties=frozenset({"expert", "force_default_on_freeze", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.enumfam.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.enumfam.enumvar': ParamOption(option_6)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.enumfam.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.enumfam.enumvar': ParamOption(option_6)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6, option_7], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11], properties=frozenset({"expert"}))
+option_13 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
+option_13.impl_set_information('help', "bla bla bla")
+option_14 = IntOption(name="test_variable", doc="test variable", properties=frozenset({"expert", "force_default_on_freeze", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.enumfam.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.enumfam.enumvar': ParamOption(option_13)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.enumfam.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.enumfam.enumvar': ParamOption(option_13)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_12 = OptionDescription(name="enumfam", doc="enumfam", children=[option_13, option_14], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10, optiondescription_12], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/10integer_jinja/dictionaries/rougail/00-base.yml b/tests/dictionaries/10integer_jinja/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..62b7b16bf
--- /dev/null
+++ b/tests/dictionaries/10integer_jinja/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+---
+version: '1.0'
+my_variable:
+ type: choice
+ default: 9
+ choices:
+ type: jinja
+ jinja: |+
+ {% for item in trange(0, 10) %}
+ {{ item }}
+ {%- endfor %}
+ return_type: number
diff --git a/tests/dictionaries/10leadership_append/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_append/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ad227a5f4
--- /dev/null
+++ b/tests/dictionaries/10leadership_append/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leader.follower1 | calc_val }}'
diff --git a/tests/dictionaries/10leadership_append/dictionaries/rougail/01-base.yml b/tests/dictionaries/10leadership_append/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..daf0c0198
--- /dev/null
+++ b/tests/dictionaries/10leadership_append/dictionaries/rougail/01-base.yml
@@ -0,0 +1,7 @@
+---
+version: '1.0'
+general1:
+ leader:
+ follower3:
+ type: string
+ description: follower3
diff --git a/tests/dictionaries/10leadership_append/tiramisu/base.py b/tests/dictionaries/10leadership_append/tiramisu/base.py
index 6acd25634..314a1005a 100644
--- a/tests/dictionaries/10leadership_append/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_append/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,24 +17,64 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+option_9 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_append/tiramisu/multi.py b/tests/dictionaries/10leadership_append/tiramisu/multi.py
index a68afad4e..bc775d553 100644
--- a/tests/dictionaries/10leadership_append/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_append/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,35 +17,77 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18])
-option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"normal"}))
-option_13 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_14 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_15 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_14)))), properties=frozenset({"normal"}))
-option_16 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
-optiondescription_12 = Leadership(name="leader", doc="leader", children=[option_13, option_14, option_15, option_16], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="general1", doc="general1", children=[optiondescription_12], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="2", doc="2", children=[optiondescription_20])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_19])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_1.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+dict_env['default_2.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_2.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_8)})), properties=frozenset({"normal"}))
+option_10 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
+optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="general1", doc="general1", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="general", doc="general", children=[option_14], properties=frozenset({"normal"}))
+option_17 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_18 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_19 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_18)})), properties=frozenset({"normal"}))
+option_20 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
+optiondescription_16 = Leadership(name="leader", doc="leader", children=[option_17, option_18, option_19, option_20], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="general1", doc="general1", children=[optiondescription_16], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/10leadership_append_hidden/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_append_hidden/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..723f4ae6d
--- /dev/null
+++ b/tests/dictionaries/10leadership_append_hidden/dictionaries/rougail/00-base.yml
@@ -0,0 +1,28 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ hidden: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leader.follower1 | calc_val }}'
diff --git a/tests/dictionaries/10leadership_append_hidden/dictionaries/rougail/01-base.yml b/tests/dictionaries/10leadership_append_hidden/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..daf0c0198
--- /dev/null
+++ b/tests/dictionaries/10leadership_append_hidden/dictionaries/rougail/01-base.yml
@@ -0,0 +1,7 @@
+---
+version: '1.0'
+general1:
+ leader:
+ follower3:
+ type: string
+ description: follower3
diff --git a/tests/dictionaries/10leadership_append_hidden/tiramisu/base.py b/tests/dictionaries/10leadership_append_hidden/tiramisu/base.py
index ce5a91be9..ce7c25101 100644
--- a/tests/dictionaries/10leadership_append_hidden/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_append_hidden/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,24 +17,64 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_8 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7, option_8], properties=frozenset({"hidden", "normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_7)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_9 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8, option_9], properties=frozenset({"hidden", "normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_append_hidden/tiramisu/multi.py b/tests/dictionaries/10leadership_append_hidden/tiramisu/multi.py
index c5b2855a1..db86dc35f 100644
--- a/tests/dictionaries/10leadership_append_hidden/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_append_hidden/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,35 +17,77 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_8 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7, option_8], properties=frozenset({"hidden", "normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18])
-option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"normal"}))
-option_13 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_14 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_15 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_14)))), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_16 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-optiondescription_12 = Leadership(name="leader", doc="leader", children=[option_13, option_14, option_15, option_16], properties=frozenset({"hidden", "normal"}))
-optiondescription_11 = OptionDescription(name="general1", doc="general1", children=[optiondescription_12], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="2", doc="2", children=[optiondescription_20])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_19])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_1.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+dict_env['default_2.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_2.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_8)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_10 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9, option_10], properties=frozenset({"hidden", "normal"}))
+optiondescription_5 = OptionDescription(name="general1", doc="general1", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="general", doc="general", children=[option_14], properties=frozenset({"normal"}))
+option_17 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_18 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_19 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_18)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_20 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_16 = Leadership(name="leader", doc="leader", children=[option_17, option_18, option_19, option_20], properties=frozenset({"hidden", "normal"}))
+optiondescription_15 = OptionDescription(name="general1", doc="general1", children=[optiondescription_16], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/10leadership_append_name/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_append_name/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..fe8a5dc1a
--- /dev/null
+++ b/tests/dictionaries/10leadership_append_name/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leadership:
+ description: leadership
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leadership.follower1 | calc_val }}'
diff --git a/tests/dictionaries/10leadership_append_name/dictionaries/rougail/01-base.yml b/tests/dictionaries/10leadership_append_name/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..9ee097585
--- /dev/null
+++ b/tests/dictionaries/10leadership_append_name/dictionaries/rougail/01-base.yml
@@ -0,0 +1,7 @@
+---
+version: '1.0'
+general1:
+ leadership:
+ follower3:
+ type: string
+ description: follower3
diff --git a/tests/dictionaries/10leadership_append_name/tiramisu/base.py b/tests/dictionaries/10leadership_append_name/tiramisu/base.py
index ee255fcd6..fe542af04 100644
--- a/tests/dictionaries/10leadership_append_name/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_append_name/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,24 +17,64 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leadership", doc="leadership", children=[option_5, option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general1.leadership.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_rougail.general1.leadership.follower2'] = "{{ rougail.general1.leadership.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leadership.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leadership.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leadership.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+option_9 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leadership", doc="leadership", children=[option_6, option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_append_name/tiramisu/multi.py b/tests/dictionaries/10leadership_append_name/tiramisu/multi.py
index 3839fdcd7..91996ab58 100644
--- a/tests/dictionaries/10leadership_append_name/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_append_name/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,35 +17,77 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leadership", doc="leadership", children=[option_5, option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18])
-option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"normal"}))
-option_13 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_14 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_15 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_14)))), properties=frozenset({"normal"}))
-option_16 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
-optiondescription_12 = Leadership(name="leadership", doc="leadership", children=[option_13, option_14, option_15, option_16], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="general1", doc="general1", children=[optiondescription_12], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="2", doc="2", children=[optiondescription_20])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_19])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general1.leadership.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_1.rougail.general1.leadership.follower2'] = "{{ rougail.general1.leadership.follower1 | calc_val }}"
+dict_env['default_2.rougail.general1.leadership.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_2.rougail.general1.leadership.follower2'] = "{{ rougail.general1.leadership.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leadership.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leadership.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leadership.follower1': ParamOption(option_8)})), properties=frozenset({"normal"}))
+option_10 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
+optiondescription_6 = Leadership(name="leadership", doc="leadership", children=[option_7, option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="general1", doc="general1", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="general", doc="general", children=[option_14], properties=frozenset({"normal"}))
+option_17 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_18 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leadership.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_19 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leadership.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leadership.follower1': ParamOption(option_18)})), properties=frozenset({"normal"}))
+option_20 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
+optiondescription_16 = Leadership(name="leadership", doc="leadership", children=[option_17, option_18, option_19, option_20], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="general1", doc="general1", children=[optiondescription_16], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/10leadership_auto/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_auto/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c927a0fe8
--- /dev/null
+++ b/tests/dictionaries/10leadership_auto/dictionaries/rougail/00-base.yml
@@ -0,0 +1,34 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.leader.follower1 | calc_val }}'
+ follower3:
+ type: string
+ description: follower3
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.leader.leader | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/10leadership_auto/tiramisu/base.py b/tests/dictionaries/10leadership_auto/tiramisu/base.py
index 4e992d54f..cd442a2e6 100644
--- a/tests/dictionaries/10leadership_auto/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_auto/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,64 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_5)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_7 = StrOption(name="follower3", doc="follower3", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}"
+dict_env['default_rougail.general.leader.follower3'] = "{{ rougail.general.leader.leader | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.follower1': ParamOption(option_6)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_8 = StrOption(name="follower3", doc="follower3", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.leader': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_auto/tiramisu/multi.py b/tests/dictionaries/10leadership_auto/tiramisu/multi.py
index 633dab09c..0e39f26e9 100644
--- a/tests/dictionaries/10leadership_auto/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_auto/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,33 +17,77 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_5)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_7 = StrOption(name="follower3", doc="follower3", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_11 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_12 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_13 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_12)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_14 = StrOption(name="follower3", doc="follower3", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_11)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_10 = Leadership(name="leader", doc="leader", children=[option_11, option_12, option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, optiondescription_10], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_1.rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}"
+dict_env['default_1.rougail.general.leader.follower3'] = "{{ rougail.general.leader.leader | calc_val }}"
+dict_env['default_2.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_2.rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}"
+dict_env['default_2.rougail.general.leader.follower3'] = "{{ rougail.general.leader.leader | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.follower1': ParamOption(option_7)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_9 = StrOption(name="follower3", doc="follower3", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.leader': ParamOption(option_6)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_15 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_16 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_17 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.follower1': ParamOption(option_16)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_18 = StrOption(name="follower3", doc="follower3", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.leader.follower3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.leader': ParamOption(option_15)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_14 = Leadership(name="leader", doc="leader", children=[option_15, option_16, option_17, option_18], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13, optiondescription_14], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/10leadership_auto_index/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_auto_index/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..8ea6e58fb
--- /dev/null
+++ b/tests/dictionaries/10leadership_auto_index/dictionaries/rougail/00-base.yml
@@ -0,0 +1,18 @@
+leader:
+ description: leader
+ type: leadership
+ leader:
+ multi: true
+ default:
+ - a
+ - b
+ - c
+ follower1:
+ type: number
+ default:
+ type: jinja
+ jinja: '{{ __index | calc_val }}'
+ params:
+ __index:
+ type: index
+version: '1.0'
diff --git a/tests/dictionaries/10leadership_auto_index/tiramisu/base.py b/tests/dictionaries/10leadership_auto_index/tiramisu/base.py
index aad9952c5..1987925b5 100644
--- a/tests/dictionaries/10leadership_auto_index/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_auto_index/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,58 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b', 'c'], properties=frozenset({"mandatory", "normal"}))
-option_3 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((ParamIndex()))), properties=frozenset({"normal"}))
-optiondescription_1 = Leadership(name="leader", doc="leader", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.leader.follower1'] = "{{ __index | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b', 'c'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_4 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.leader.follower1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), '__index': ParamIndex()})), properties=frozenset({"normal"}))
+optiondescription_2 = Leadership(name="leader", doc="leader", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_auto_index/tiramisu/multi.py b/tests/dictionaries/10leadership_auto_index/tiramisu/multi.py
index 4db93c5c6..5582529b1 100644
--- a/tests/dictionaries/10leadership_auto_index/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_auto_index/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,65 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b', 'c'], properties=frozenset({"mandatory", "normal"}))
-option_3 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((ParamIndex()))), properties=frozenset({"normal"}))
-optiondescription_1 = Leadership(name="leader", doc="leader", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b', 'c'], properties=frozenset({"mandatory", "normal"}))
-option_6 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((ParamIndex()))), properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.leader.follower1'] = "{{ __index | calc_val }}"
+dict_env['default_2.rougail.leader.follower1'] = "{{ __index | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b', 'c'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_5 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.leader.follower1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), '__index': ParamIndex()})), properties=frozenset({"normal"}))
+optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b', 'c'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_10 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.leader.follower1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), '__index': ParamIndex()})), properties=frozenset({"normal"}))
+optiondescription_8 = Leadership(name="leader", doc="leader", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/10leadership_autoleader/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_autoleader/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..680b9493c
--- /dev/null
+++ b/tests/dictionaries/10leadership_autoleader/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.leader.leader | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/10leadership_autoleader/tiramisu/base.py b/tests/dictionaries/10leadership_autoleader/tiramisu/base.py
index d10633bdf..4d5561650 100644
--- a/tests/dictionaries/10leadership_autoleader/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_autoleader/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_rougail.general.leader.follower2'] = "{{ rougail.general.leader.leader | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.leader': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_autoleader/tiramisu/multi.py b/tests/dictionaries/10leadership_autoleader/tiramisu/multi.py
index 1ea0c713d..4f2f45f75 100644
--- a/tests/dictionaries/10leadership_autoleader/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_autoleader/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,73 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_11 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_12 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_10)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_1.rougail.general.leader.follower2'] = "{{ rougail.general.leader.leader | calc_val }}"
+dict_env['default_2.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_2.rougail.general.leader.follower2'] = "{{ rougail.general.leader.leader | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.leader': ParamOption(option_6)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_15 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_16 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.leader': ParamOption(option_14)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_13 = Leadership(name="leader", doc="leader", children=[option_14, option_15, option_16], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12, optiondescription_13], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/10leadership_autoleader_expert/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_autoleader_expert/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..76ce1bdf9
--- /dev/null
+++ b/tests/dictionaries/10leadership_autoleader_expert/dictionaries/rougail/00-base.yml
@@ -0,0 +1,25 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+leadermode:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ mode: expert
+ default:
+ type: jinja
+ jinja: 'valfill'
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries/10leadership_autoleader_expert/makedict/after.json b/tests/dictionaries/10leadership_autoleader_expert/makedict/after.json
index a06c87b44..984ecc2aa 100644
--- a/tests/dictionaries/10leadership_autoleader_expert/makedict/after.json
+++ b/tests/dictionaries/10leadership_autoleader_expert/makedict/after.json
@@ -5,6 +5,11 @@
},
"rougail.leadermode.leader.leader": {
"owner": "default",
- "value": []
- }
+ "value": ["valfill"]
+ },
+ "rougail.leadermode.leader.follower1": {"owner": ["default"],
+ "value": [null]},
+ "rougail.leadermode.leader.follower2": {"owner": ["default"],
+ "value": [null]}
+
}
diff --git a/tests/dictionaries/10leadership_autoleader_expert/makedict/base.json b/tests/dictionaries/10leadership_autoleader_expert/makedict/base.json
index fe8a1c7ae..88df331f2 100644
--- a/tests/dictionaries/10leadership_autoleader_expert/makedict/base.json
+++ b/tests/dictionaries/10leadership_autoleader_expert/makedict/base.json
@@ -1,4 +1,8 @@
{
"rougail.general.mode_conteneur_actif": "non",
- "rougail.leadermode.leader.leader": []
+ "rougail.leadermode.leader.leader": [],
+ "rougail.leadermode.leader.leader": [{"rougail.leadermode.leader.follower1": null,
+ "rougail.leadermode.leader.follower2": null,
+ "rougail.leadermode.leader.leader": "valfill"}]
+
}
diff --git a/tests/dictionaries/10leadership_autoleader_expert/makedict/before.json b/tests/dictionaries/10leadership_autoleader_expert/makedict/before.json
index a06c87b44..984ecc2aa 100644
--- a/tests/dictionaries/10leadership_autoleader_expert/makedict/before.json
+++ b/tests/dictionaries/10leadership_autoleader_expert/makedict/before.json
@@ -5,6 +5,11 @@
},
"rougail.leadermode.leader.leader": {
"owner": "default",
- "value": []
- }
+ "value": ["valfill"]
+ },
+ "rougail.leadermode.leader.follower1": {"owner": ["default"],
+ "value": [null]},
+ "rougail.leadermode.leader.follower2": {"owner": ["default"],
+ "value": [null]}
+
}
diff --git a/tests/dictionaries/10leadership_autoleader_expert/tiramisu/base.py b/tests/dictionaries/10leadership_autoleader_expert/tiramisu/base.py
index 146014bb4..966864a1c 100644
--- a/tests/dictionaries/10leadership_autoleader_expert/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_autoleader_expert/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"expert"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"expert"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"expert"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"expert"}))
-optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"expert"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.leadermode.leader.leader'] = "valfill"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"expert"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"expert"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"expert"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"expert"}))
+optiondescription_4 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_autoleader_expert/tiramisu/multi.py b/tests/dictionaries/10leadership_autoleader_expert/tiramisu/multi.py
index a5945a16b..152395bde 100644
--- a/tests/dictionaries/10leadership_autoleader_expert/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_autoleader_expert/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,33 +17,73 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"expert"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"expert"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"expert"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"expert"}))
-optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"expert"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"expert"}))
-option_12 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"expert"}))
-option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"expert"}))
-option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"expert"}))
-optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_11], properties=frozenset({"expert"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"expert"}))
-optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.leadermode.leader.leader'] = "valfill"
+dict_env['default_2.rougail.leadermode.leader.leader'] = "valfill"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"expert"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"expert"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"expert"}))
+optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9], properties=frozenset({"expert"}))
+optiondescription_5 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_6], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"expert"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"expert"}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"expert"}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"expert"}))
+optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"expert"}))
+optiondescription_14 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_15], properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/10leadership_autosaveexpert/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_autosaveexpert/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..65be907af
--- /dev/null
+++ b/tests/dictionaries/10leadership_autosaveexpert/dictionaries/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ mode: expert
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/10leadership_autosaveexpert/tiramisu/base.py b/tests/dictionaries/10leadership_autosaveexpert/tiramisu/base.py
index 292deec62..21c2ee017 100644
--- a/tests/dictionaries/10leadership_autosaveexpert/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_autosaveexpert/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_5)))), properties=frozenset({"expert"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.follower1': ParamOption(option_6)})), properties=frozenset({"expert"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_autosaveexpert/tiramisu/multi.py b/tests/dictionaries/10leadership_autosaveexpert/tiramisu/multi.py
index 2916cc29b..4e82a9f38 100644
--- a/tests/dictionaries/10leadership_autosaveexpert/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_autosaveexpert/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,73 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_5)))), properties=frozenset({"expert"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_11 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_12 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_11)))), properties=frozenset({"expert"}))
-optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_1.rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}"
+dict_env['default_2.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_2.rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.follower1': ParamOption(option_7)})), properties=frozenset({"expert"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_15 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_16 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.follower1': ParamOption(option_15)})), properties=frozenset({"expert"}))
+optiondescription_13 = Leadership(name="leader", doc="leader", children=[option_14, option_15, option_16], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12, optiondescription_13], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/10leadership_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_empty/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..92fffabf7
--- /dev/null
+++ b/tests/dictionaries/10leadership_empty/dictionaries/rougail/00-base.yml
@@ -0,0 +1,4 @@
+---
+version: '1.0'
+empty_leader:
+ type: leadership
diff --git a/tests/dictionaries/10leadership_empty/makedict/after.json b/tests/dictionaries/10leadership_empty/makedict/after.json
index 9cd2d3dde..0967ef424 100644
--- a/tests/dictionaries/10leadership_empty/makedict/after.json
+++ b/tests/dictionaries/10leadership_empty/makedict/after.json
@@ -1,10 +1 @@
-{
- "services.tata_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.tata_service.manage": {
- "owner": "default",
- "value": true
- }
-}
+{}
diff --git a/tests/dictionaries/10leadership_empty/makedict/base.json b/tests/dictionaries/10leadership_empty/makedict/base.json
index 2bcec6972..0967ef424 100644
--- a/tests/dictionaries/10leadership_empty/makedict/base.json
+++ b/tests/dictionaries/10leadership_empty/makedict/base.json
@@ -1,4 +1 @@
-{
- "services.tata_service.activate": true,
- "services.tata_service.manage": true
-}
+{}
diff --git a/tests/dictionaries/10leadership_empty/makedict/before.json b/tests/dictionaries/10leadership_empty/makedict/before.json
index 9cd2d3dde..0967ef424 100644
--- a/tests/dictionaries/10leadership_empty/makedict/before.json
+++ b/tests/dictionaries/10leadership_empty/makedict/before.json
@@ -1,10 +1 @@
-{
- "services.tata_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.tata_service.manage": {
- "owner": "default",
- "value": true
- }
-}
+{}
diff --git a/tests/dictionaries/10leadership_empty/tiramisu/base.py b/tests/dictionaries/10leadership_empty/tiramisu/base.py
index 4dd3f5778..e2b3d0895 100644
--- a/tests/dictionaries/10leadership_empty/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_empty/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,7 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[], properties=frozenset({"expert"}))
-option_2 = BoolOption(name="activate", doc="activate", default=True)
-option_3 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_6 = OptionDescription(name="tata_service", doc="tata.service", children=[option_2, option_3])
-optiondescription_6.impl_set_information('type', "service")
-optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4, optiondescription_5])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_empty/tiramisu/multi.py b/tests/dictionaries/10leadership_empty/tiramisu/multi.py
index d4f12df9e..29b10c435 100644
--- a/tests/dictionaries/10leadership_empty/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_empty/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,8 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[], properties=frozenset({"expert"}))
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_4 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_10 = OptionDescription(name="tata_service", doc="tata.service", children=[option_3, option_4])
-optiondescription_10.impl_set_information('type', "service")
-optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8, optiondescription_9])
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[], properties=frozenset({"expert"}))
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_6 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="tata_service", doc="tata.service", children=[option_5, option_6])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12, optiondescription_13])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_11])
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[], properties=frozenset({"expert"}))
+optiondescription_4 = OptionDescription(name="2", doc="2", children=[], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/10leadership_hidden/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_hidden/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..857628636
--- /dev/null
+++ b/tests/dictionaries/10leadership_hidden/dictionaries/rougail/00-base.yml
@@ -0,0 +1,28 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+leadermode:
+ leader:
+ description: leader
+ hidden: true
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ default:
+ type: jinja
+ jinja: |
+ {% for var in calc_list() %}
+ {{ var }}
+ {% endfor %}
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries/10leadership_hidden/tiramisu/base.py b/tests/dictionaries/10leadership_hidden/tiramisu/base.py
index 0c39bc6b2..23a749f60 100644
--- a/tests/dictionaries/10leadership_hidden/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_hidden/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"hidden", "normal"}))
-optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.leadermode.leader.leader'] = "{% for var in calc_list() %}\n{{ var }}\n{% endfor %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"hidden", "normal"}))
+optiondescription_4 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_hidden/tiramisu/multi.py b/tests/dictionaries/10leadership_hidden/tiramisu/multi.py
index 5cd5bb4ec..959891b00 100644
--- a/tests/dictionaries/10leadership_hidden/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_hidden/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,33 +17,73 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"hidden", "normal"}))
-optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"expert"}))
-option_12 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"hidden", "normal"}))
-optiondescription_10 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.leadermode.leader.leader'] = "{% for var in calc_list() %}\n{{ var }}\n{% endfor %}\n"
+dict_env['default_2.rougail.leadermode.leader.leader'] = "{% for var in calc_list() %}\n{{ var }}\n{% endfor %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9], properties=frozenset({"hidden", "normal"}))
+optiondescription_5 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"expert"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"hidden", "normal"}))
+optiondescription_14 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/10leadership_leader_hidden/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_leader_hidden/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..11121977c
--- /dev/null
+++ b/tests/dictionaries/10leadership_leader_hidden/dictionaries/rougail/00-base.yml
@@ -0,0 +1,28 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+leadermode:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ hidden: true
+ default:
+ type: jinja
+ jinja: |
+ {% for var in calc_list() %}
+ {{ var }}
+ {% endfor %}
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries/10leadership_leader_hidden/tiramisu/base.py b/tests/dictionaries/10leadership_leader_hidden/tiramisu/base.py
index 0c39bc6b2..23a749f60 100644
--- a/tests/dictionaries/10leadership_leader_hidden/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_leader_hidden/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"hidden", "normal"}))
-optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.leadermode.leader.leader'] = "{% for var in calc_list() %}\n{{ var }}\n{% endfor %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"hidden", "normal"}))
+optiondescription_4 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_leader_hidden/tiramisu/multi.py b/tests/dictionaries/10leadership_leader_hidden/tiramisu/multi.py
index 5cd5bb4ec..959891b00 100644
--- a/tests/dictionaries/10leadership_leader_hidden/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_leader_hidden/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,33 +17,73 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"hidden", "normal"}))
-optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"expert"}))
-option_12 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"hidden", "normal"}))
-optiondescription_10 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.leadermode.leader.leader'] = "{% for var in calc_list() %}\n{{ var }}\n{% endfor %}\n"
+dict_env['default_2.rougail.leadermode.leader.leader'] = "{% for var in calc_list() %}\n{{ var }}\n{% endfor %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9], properties=frozenset({"hidden", "normal"}))
+optiondescription_5 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"expert"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"hidden", "normal"}))
+optiondescription_14 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/10leadership_leader_hidden_if_in/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_leader_hidden_if_in/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..21b220305
--- /dev/null
+++ b/tests/dictionaries/10leadership_leader_hidden_if_in/dictionaries/rougail/00-base.yml
@@ -0,0 +1,28 @@
+---
+version: '1.0'
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+leadermode:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.mode_conteneur_actif == "non" %}
+ rougail.general.mode_conteneur_actif is non
+ {% endif %}
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
diff --git a/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/base.py b/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/base.py
index 381694927..8c9549970 100644
--- a/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,65 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['frozen_rougail.leadermode.leader.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_rougail.leadermode.leader.follower1'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_rougail.leadermode.leader.follower2'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['hidden_rougail.leadermode.leader.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.leadermode.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.leadermode.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_4 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/multi.py b/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/multi.py
index 35392e10f..6c6b3c1e6 100644
--- a/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,33 +17,79 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"expert"}))
-option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_10 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['frozen_1.rougail.leadermode.leader.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_1.rougail.leadermode.leader.follower1'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_1.rougail.leadermode.leader.follower2'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['hidden_1.rougail.leadermode.leader.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_2.rougail.leadermode.leader.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_2.rougail.leadermode.leader.follower1'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_2.rougail.leadermode.leader.follower2'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['hidden_2.rougail.leadermode.leader.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.leadermode.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.leadermode.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_5 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"expert"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_13)}), help_function=func['jinja_to_property_help'])}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.leadermode.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_13)}), help_function=func['jinja_to_property_help'])}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.leadermode.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_13)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_13)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_14 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/10leadership_leader_hidden_if_in_name/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_leader_hidden_if_in_name/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..73fac8064
--- /dev/null
+++ b/tests/dictionaries/10leadership_leader_hidden_if_in_name/dictionaries/rougail/00-base.yml
@@ -0,0 +1,28 @@
+---
+version: '1.0'
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+leadermode:
+ other:
+ description: other
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.mode_conteneur_actif == "non" %}
+ rougail.general.mode_conteneur_actif is non
+ {% endif %}
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
diff --git a/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/base.py b/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/base.py
index 8a60ac2b5..f898c983d 100644
--- a/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,65 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_4 = Leadership(name="other", doc="other", children=[option_5, option_6, option_7], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['frozen_rougail.leadermode.other.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_rougail.leadermode.other.follower1'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_rougail.leadermode.other.follower2'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['hidden_rougail.leadermode.other.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.leadermode.other.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.leadermode.other.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.leadermode.other.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_5 = Leadership(name="other", doc="other", children=[option_6, option_7, option_8], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.leadermode.other.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_4 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/multi.py b/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/multi.py
index 35abc8e9b..319084622 100644
--- a/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,33 +17,79 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_4 = Leadership(name="other", doc="other", children=[option_5, option_6, option_7], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"expert"}))
-option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_11 = Leadership(name="other", doc="other", children=[option_12, option_13, option_14], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_10 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['frozen_1.rougail.leadermode.other.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_1.rougail.leadermode.other.follower1'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_1.rougail.leadermode.other.follower2'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['hidden_1.rougail.leadermode.other.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_2.rougail.leadermode.other.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_2.rougail.leadermode.other.follower1'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['frozen_2.rougail.leadermode.other.follower2'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+dict_env['hidden_2.rougail.leadermode.other.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.leadermode.other.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.leadermode.other.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.leadermode.other.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_6 = Leadership(name="other", doc="other", children=[option_7, option_8, option_9], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.leadermode.other.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_5 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"expert"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.leadermode.other.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_13)}), help_function=func['jinja_to_property_help'])}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.leadermode.other.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_13)}), help_function=func['jinja_to_property_help'])}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.leadermode.other.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_13)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_15 = Leadership(name="other", doc="other", children=[option_16, option_17, option_18], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.leadermode.other.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_13)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_14 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/10leadership_leadermandatory/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_leadermandatory/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0dfd29624
--- /dev/null
+++ b/tests/dictionaries/10leadership_leadermandatory/dictionaries/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ mandatory: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/10leadership_leadermandatory/tiramisu/base.py b/tests/dictionaries/10leadership_leadermandatory/tiramisu/base.py
index 07ede7e31..dbb245de8 100644
--- a/tests/dictionaries/10leadership_leadermandatory/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_leadermandatory/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "mandatory"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_5)))), properties=frozenset({"normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"basic"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "mandatory", "notempty"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.follower1': ParamOption(option_6)})), properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_leadermandatory/tiramisu/multi.py b/tests/dictionaries/10leadership_leadermandatory/tiramisu/multi.py
index acbcc6e71..936050329 100644
--- a/tests/dictionaries/10leadership_leadermandatory/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_leadermandatory/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,73 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "mandatory"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_5)))), properties=frozenset({"normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"basic"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "mandatory"}))
-option_11 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_12 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_11)))), properties=frozenset({"normal"}))
-optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"basic"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"basic"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"basic"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_1.rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}"
+dict_env['default_2.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_2.rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "mandatory", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"basic"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, optiondescription_5], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_12 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "mandatory", "notempty"}))
+option_15 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_16 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.follower1': ParamOption(option_15)})), properties=frozenset({"normal"}))
+optiondescription_13 = Leadership(name="leader", doc="leader", children=[option_14, option_15, option_16], properties=frozenset({"basic"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12, optiondescription_13], properties=frozenset({"basic"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11], properties=frozenset({"basic"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/10leadership_mandatoryfollower/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_mandatoryfollower/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..adfbc5663
--- /dev/null
+++ b/tests/dictionaries/10leadership_mandatoryfollower/dictionaries/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+ nut_monitor_netmask:
+ description: Masque de l'IP du réseau de l'esclave
+ type: leadership
+ nut_monitor_netmask:
+ type: netmask
+ description: Masque de l'IP du réseau de l'esclave
+ multi: true
+ nut_monitor_host:
+ type: network
+ description: Adresse IP du réseau de l'esclave
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/base.py b/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/base.py
index a7d7f150c..cb70a9d79 100644
--- a/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
-option_5 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, properties=frozenset({"basic", "mandatory"}))
-optiondescription_3 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
+option_6 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_4 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/multi.py b/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/multi.py
index d279b65e5..11cfdf4d8 100644
--- a/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
-option_5 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, properties=frozenset({"basic", "mandatory"}))
-optiondescription_3 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_9 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
-option_10 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, properties=frozenset({"basic", "mandatory"}))
-optiondescription_8 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="general", doc="général", children=[option_7, optiondescription_8], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
+option_7 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_5 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_13 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
+option_14 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_12 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="general", doc="général", children=[option_11, optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/10leadership_mandatoryfollower_value/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_mandatoryfollower_value/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f8f642153
--- /dev/null
+++ b/tests/dictionaries/10leadership_mandatoryfollower_value/dictionaries/rougail/00-base.yml
@@ -0,0 +1,20 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+ nut_monitor_netmask:
+ description: Masque de l'IP du réseau de l'esclave
+ type: leadership
+ nut_monitor_netmask:
+ type: netmask
+ description: Masque de l'IP du réseau de l'esclave
+ multi: true
+ nut_monitor_host:
+ type: network
+ description: Adresse IP du réseau de l'esclave
+ mandatory: true
+ default: 192.168.0.0
+version: '1.0'
diff --git a/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/base.py b/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/base.py
index b7ecb265a..23a6f5cc8 100644
--- a/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
-option_5 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, default_multi="192.168.0.0", properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
+option_6 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, default_multi="192.168.0.0", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/multi.py b/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/multi.py
index 99997f62f..6fb330dd8 100644
--- a/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
-option_5 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, default_multi="192.168.0.0", properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_9 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
-option_10 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, default_multi="192.168.0.0", properties=frozenset({"mandatory", "normal"}))
-optiondescription_8 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="general", doc="général", children=[option_7, optiondescription_8], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
+option_7 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, default_multi="192.168.0.0", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_13 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
+option_14 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, default_multi="192.168.0.0", properties=frozenset({"mandatory", "normal"}))
+optiondescription_12 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="general", doc="général", children=[option_11, optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/10leadership_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..a76ff7462
--- /dev/null
+++ b/tests/dictionaries/10leadership_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,39 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leader.follower1 | calc_val }}'
+ leader1:
+ description: leader
+ type: leadership
+ leader1:
+ type: string
+ description: leader
+ multi: true
+ follower11:
+ type: string
+ description: follower1
+ follower21:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries/10leadership_multi/tiramisu/base.py b/tests/dictionaries/10leadership_multi/tiramisu/base.py
index 91bad5e87..8652739d1 100644
--- a/tests/dictionaries/10leadership_multi/tiramisu/base.py
+++ b/tests/dictionaries/10leadership_multi/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-option_9 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_10 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"normal"}))
-option_11 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_8 = Leadership(name="leader1", doc="leader", children=[option_9, option_10, option_11], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4, optiondescription_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+option_10 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_11 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_12 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_9 = Leadership(name="leader1", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5, optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10leadership_multi/tiramisu/multi.py b/tests/dictionaries/10leadership_multi/tiramisu/multi.py
index 8efd3d6c0..3c3561b4b 100644
--- a/tests/dictionaries/10leadership_multi/tiramisu/multi.py
+++ b/tests/dictionaries/10leadership_multi/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,41 +17,83 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-option_9 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_10 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"normal"}))
-option_11 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_8 = Leadership(name="leader1", doc="leader", children=[option_9, option_10, option_11], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4, optiondescription_8], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24])
-option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"normal"}))
-option_16 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_17 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_18 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_17)))), properties=frozenset({"normal"}))
-optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"normal"}))
-option_20 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_21 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"normal"}))
-option_22 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_19 = Leadership(name="leader1", doc="leader", children=[option_20, option_21, option_22], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="general1", doc="general1", children=[optiondescription_15, optiondescription_19], properties=frozenset({"normal"}))
-optiondescription_26 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"normal"}))
-optiondescription_25 = OptionDescription(name="2", doc="2", children=[optiondescription_26])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_25])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_1.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+dict_env['default_2.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_2.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_8)})), properties=frozenset({"normal"}))
+optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+option_11 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_12 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_13 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_10 = Leadership(name="leader1", doc="leader", children=[option_11, option_12, option_13], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="general1", doc="general1", children=[optiondescription_6, optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_17 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_16 = OptionDescription(name="general", doc="general", children=[option_17], properties=frozenset({"normal"}))
+option_20 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_21 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_22 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_21)})), properties=frozenset({"normal"}))
+optiondescription_19 = Leadership(name="leader", doc="leader", children=[option_20, option_21, option_22], properties=frozenset({"normal"}))
+option_24 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_25 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_26 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_23 = Leadership(name="leader1", doc="leader", children=[option_24, option_25, option_26], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="general1", doc="general1", children=[optiondescription_19, optiondescription_23], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_16, optiondescription_18], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="2", doc="2", children=[optiondescription_15], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_14])
diff --git a/tests/dictionaries/10load_disabled_if_in/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4bd1f5b9b
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in/dictionaries/rougail/00-base.yml
@@ -0,0 +1,29 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ rougail.general.condition is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ rougail.general.condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_in/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in/tiramisu/base.py
index d166a5cbd..04e4029e1 100644
--- a/tests/dictionaries/10load_disabled_if_in/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in/tiramisu/multi.py
index 15b3e1b4a..4746d15df 100644
--- a/tests/dictionaries/10load_disabled_if_in/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabled_if_in_fill/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_fill/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..d324fe674
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_fill/dictionaries/rougail/00-base.yml
@@ -0,0 +1,20 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ default: 'no'
+ variable1:
+ type: string
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "no" %}
+ rougail.general.condition is "no"
+ {% endif %}
+ variable2:
+ type: string
+ default:
+ type: variable
+ variable: rougail.general.variable1
+ propertyerror: false
diff --git a/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/base.py
index c0dc90c8f..7145186ca 100644
--- a/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="variable2", doc="variable2", default=Calculation(func.calc_val, Params((ParamOption(option_3, notraisepropertyerror=True)))), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.variable1'] = "{% if rougail.general.condition == \"no\" %}\nrougail.general.condition is \"no\"\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.variable1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="variable2", doc="variable2", default=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)), kwargs={'multi': ParamValue(False), 'allow_none': ParamValue(True)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/multi.py
index 6f976df89..a2ef0f63e 100644
--- a/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="variable2", doc="variable2", default=Calculation(func.calc_val, Params((ParamOption(option_3, notraisepropertyerror=True)))), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
-option_8 = StrOption(name="variable2", doc="variable2", default=Calculation(func.calc_val, Params((ParamOption(option_7, notraisepropertyerror=True)))), properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.variable1'] = "{% if rougail.general.condition == \"no\" %}\nrougail.general.condition is \"no\"\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.variable1'] = "{% if rougail.general.condition == \"no\" %}\nrougail.general.condition is \"no\"\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.variable1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="variable2", doc="variable2", default=Calculation(func['calc_value'], Params((ParamOption(option_5, notraisepropertyerror=True)), kwargs={'multi': ParamValue(False), 'allow_none': ParamValue(True)})), properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.variable1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="variable2", doc="variable2", default=Calculation(func['calc_value'], Params((ParamOption(option_11, notraisepropertyerror=True)), kwargs={'multi': ParamValue(False), 'allow_none': ParamValue(True)})), properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabled_if_in_list_optional/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_list_optional/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..5b42c2211
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_list_optional/dictionaries/rougail/00-base.yml
@@ -0,0 +1,3 @@
+condition:
+ type: boolean
+version: '1.0'
diff --git a/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/base.py
index 8334b667a..d9a4d2e4f 100644
--- a/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,17 +17,8 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_2])
+option_2 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/multi.py
index 9f8efbee3..f639b1183 100644
--- a/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="1", doc="1", children=[optiondescription_4])
-option_2 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3, optiondescription_5])
+option_3 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="rougail", doc="rougail", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="2", doc="2", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_multi_param/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..55d2cc958
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param/dictionaries/rougail/00-base.yml
@@ -0,0 +1,29 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" or rougail.general.condition == "maybe" %}
+ it's disabled
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" or rougail.general.condition == "maybe" %}
+ it's disabled
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param/makedict/after.json b/tests/dictionaries/10load_disabled_if_in_multi_param/makedict/after.json
index a3d4412e4..f51f52300 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param/makedict/after.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param/makedict/after.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": "non"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 8ad0ec0ae..c6e0314ef 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,10 +1,5 @@
{
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
- "rougail.general.mode_conteneur_actif2": "non",
- "services.test_service.files.file1.name": "/tmp/file1",
- "services.test_service.files.file1.source": "file1",
- "services.test_service.files.file1.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.mode_conteneur_actif2": "non"
}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param/makedict/before.json b/tests/dictionaries/10load_disabled_if_in_multi_param/makedict/before.json
index a3d4412e4..f51f52300 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param/makedict/before.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param/makedict/before.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": "non"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": 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 1972d2afd..da6cf0934 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
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_10 = StrOption(name="source", doc="source", default="file1")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
-optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/multi.py
index 5651ec2f4..75a178573 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="source", doc="source", default="file1")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
-optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_21 = StrOption(name="source", doc="source", default="file1")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
-optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param2/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_multi_param2/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0142d8a14
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param2/dictionaries/rougail/00-base.yml
@@ -0,0 +1,22 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: 'no'
+ condition2:
+ type: string
+ description: No change
+ default: 'no'
+ test_variable:
+ type: string
+ description: No change
+ hidden: true
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition2 == "yes" or rougail.general.condition2 == "maybe" %}
+ it's disabled
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param2/makedict/after.json b/tests/dictionaries/10load_disabled_if_in_multi_param2/makedict/after.json
index aaaf7a7ef..f98da6da4 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param2/makedict/after.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param2/makedict/after.json
@@ -10,25 +10,5 @@
"rougail.general.test_variable": {
"owner": "default",
"value": "no"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 3c6640c01..0f93b1817 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,10 +1,5 @@
{
"rougail.general.condition": "no",
"rougail.general.condition2": "no",
- "rougail.general.test_variable": "no",
- "services.test_service.files.file1.name": "/tmp/file1",
- "services.test_service.files.file1.source": "file1",
- "services.test_service.files.file1.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.test_variable": "no"
}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param2/makedict/before.json b/tests/dictionaries/10load_disabled_if_in_multi_param2/makedict/before.json
index aaaf7a7ef..f98da6da4 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param2/makedict/before.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param2/makedict/before.json
@@ -10,25 +10,5 @@
"rougail.general.test_variable": {
"owner": "default",
"value": "no"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": 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 f14ef4098..e509fe51b 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
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_10 = StrOption(name="source", doc="source", default="file1")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/multi.py
index 1173a2a22..8fd76444b 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="source", doc="source", default="file1")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_21 = StrOption(name="source", doc="source", default="file1")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_7, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_11)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_multi_param3/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..188cad50b
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param3/dictionaries/rougail/00-base.yml
@@ -0,0 +1,24 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: 'no'
+ condition2:
+ type: string
+ description: No change
+ default: 'no'
+ test_variable:
+ type: string
+ description: No change
+ hidden: true
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition != "yes" and rougail.general.condition != "maybe" %}
+ it' disabled
+ {% elif rougail.general.condition2 == "yes" or rougail.general.condition2 == "maybe" %}
+ it' disabled 2
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/after.json b/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/after.json
index a2921bc75..d2bc050f8 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/after.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/after.json
@@ -6,25 +6,5 @@
"rougail.general.condition2": {
"owner": "default",
"value": "no"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 64c16aabf..72536b58c 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,9 +1,4 @@
{
"rougail.general.condition": "no",
- "rougail.general.condition2": "no",
- "services.test_service.files.file1.name": "/tmp/file1",
- "services.test_service.files.file1.source": "file1",
- "services.test_service.files.file1.activate": false,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.condition2": "no"
}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/before.json b/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/before.json
index a2921bc75..d2bc050f8 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/before.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/before.json
@@ -6,25 +6,5 @@
"rougail.general.condition2": {
"owner": "default",
"value": "no"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 fb1902665..f7908c47e 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
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_10 = StrOption(name="source", doc="source", default="file1")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.test_variable'] = "{% if rougail.general.condition != \"yes\" and rougail.general.condition != \"maybe\" %}\nit' disabled\n{% elif rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit' disabled 2\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3), 'rougail.general.condition2': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/multi.py
index 52afdbc39..8c5e22365 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="source", doc="source", default="file1")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_21 = StrOption(name="source", doc="source", default="file1")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_7, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.test_variable'] = "{% if rougail.general.condition != \"yes\" and rougail.general.condition != \"maybe\" %}\nit' disabled\n{% elif rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit' disabled 2\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.test_variable'] = "{% if rougail.general.condition != \"yes\" and rougail.general.condition != \"maybe\" %}\nit' disabled\n{% elif rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit' disabled 2\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4), 'rougail.general.condition2': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10), 'rougail.general.condition2': ParamOption(option_11)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_multi_param4/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c967582e1
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param4/dictionaries/rougail/00-base.yml
@@ -0,0 +1,24 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: 'yes'
+ condition2:
+ type: string
+ description: No change
+ default: 'no'
+ test_variable:
+ type: string
+ description: No change
+ hidden: true
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition != "yes" and rougail.general.condition != "maybe" %}
+ it's disabled
+ {% elif rougail.general.condition2 == "yes" or rougail.general.condition2 == "maybe" %}
+ it's disabled 2
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/after.json b/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/after.json
index 211d4d153..a614c3a6b 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/after.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/after.json
@@ -7,24 +7,8 @@
"owner": "default",
"value": "no"
},
- "services.test_service.files.file1.name": {
+ "rougail.general.test_variable": {
"owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
+ "value": "no"
}
}
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 5a9fd2a82..e7f9b23f3 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,9 +1,5 @@
{
"rougail.general.condition": "yes",
"rougail.general.condition2": "no",
- "services.test_service.files.file1.name": "/tmp/file1",
- "services.test_service.files.file1.source": "file1",
- "services.test_service.files.file1.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.test_variable": "no"
}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/before.json b/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/before.json
index 211d4d153..a614c3a6b 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/before.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/before.json
@@ -7,24 +7,8 @@
"owner": "default",
"value": "no"
},
- "services.test_service.files.file1.name": {
+ "rougail.general.test_variable": {
"owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
+ "value": "no"
}
}
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 b7d553566..fbfa48703 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
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_10 = StrOption(name="source", doc="source", default="file1")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.test_variable'] = "{% if rougail.general.condition != \"yes\" and rougail.general.condition != \"maybe\" %}\nit's disabled\n{% elif rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled 2\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3), 'rougail.general.condition2': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/multi.py
index b51c8e069..331d89336 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="source", doc="source", default="file1")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_21 = StrOption(name="source", doc="source", default="file1")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_7, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.test_variable'] = "{% if rougail.general.condition != \"yes\" and rougail.general.condition != \"maybe\" %}\nit's disabled\n{% elif rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled 2\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.test_variable'] = "{% if rougail.general.condition != \"yes\" and rougail.general.condition != \"maybe\" %}\nit's disabled\n{% elif rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled 2\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4), 'rougail.general.condition2': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10), 'rougail.general.condition2': ParamOption(option_11)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_multi_param5/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..2d5a2c174
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param5/dictionaries/rougail/00-base.yml
@@ -0,0 +1,22 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: 'yes'
+ condition2:
+ type: string
+ description: No change
+ default: 'yes'
+ test_variable:
+ type: string
+ description: No change
+ hidden: true
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition2 == "yes" or rougail.general.condition2 == "maybe" %}
+ it's disabled
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/after.json b/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/after.json
index 69823bd01..460e704b2 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/after.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/after.json
@@ -6,25 +6,5 @@
"rougail.general.condition2": {
"owner": "default",
"value": "yes"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 d35d8f6eb..93ee1cb37 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,9 +1,4 @@
{
"rougail.general.condition": "yes",
- "rougail.general.condition2": "yes",
- "services.test_service.files.file1.name": "/tmp/file1",
- "services.test_service.files.file1.source": "file1",
- "services.test_service.files.file1.activate": false,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.condition2": "yes"
}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/before.json b/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/before.json
index 69823bd01..460e704b2 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/before.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/before.json
@@ -6,25 +6,5 @@
"rougail.general.condition2": {
"owner": "default",
"value": "yes"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 26cf60a67..6bcc395f4 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
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_10 = StrOption(name="source", doc="source", default="file1")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/multi.py
index 7995ce6a8..043b20f74 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="source", doc="source", default="file1")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_21 = StrOption(name="source", doc="source", default="file1")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_7, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_11)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_multi_param6/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..18b4dec8c
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param6/dictionaries/rougail/00-base.yml
@@ -0,0 +1,22 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: 'no'
+ condition2:
+ type: string
+ description: No change
+ default: 'yes'
+ test_variable:
+ type: string
+ description: No change
+ hidden: true
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition2 == "yes" or rougail.general.condition2 == "maybe" %}
+ it's disabled
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/after.json b/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/after.json
index 2a9c2ffec..5afbc208b 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/after.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/after.json
@@ -6,25 +6,5 @@
"rougail.general.condition2": {
"owner": "default",
"value": "yes"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 e6b129e97..a385aafd3 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,9 +1,4 @@
{
"rougail.general.condition": "no",
- "rougail.general.condition2": "yes",
- "services.test_service.files.file1.name": "/tmp/file1",
- "services.test_service.files.file1.source": "file1",
- "services.test_service.files.file1.activate": false,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.condition2": "yes"
}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/before.json b/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/before.json
index 2a9c2ffec..5afbc208b 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/before.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/before.json
@@ -6,25 +6,5 @@
"rougail.general.condition2": {
"owner": "default",
"value": "yes"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 02b1cb244..7a44a1b32 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
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_10 = StrOption(name="source", doc="source", default="file1")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/multi.py
index e9c0493f4..7ecd4ae04 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="source", doc="source", default="file1")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_21 = StrOption(name="source", doc="source", default="file1")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_7, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_11)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..80a4c45a7
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/dictionaries/rougail/00-base.yml
@@ -0,0 +1,29 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: oui
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" or rougail.general.condition == "maybe" %}
+ it's disabled
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" or rougail.general.condition == "maybe" %}
+ it's disabled
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/makedict/after.json b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/makedict/after.json
index 44d5addf3..84fd776c0 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/makedict/after.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/makedict/after.json
@@ -2,25 +2,5 @@
"rougail.general.condition": {
"owner": "default",
"value": "oui"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 c66c2d1a2..0af6817e3 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,8 +1,3 @@
{
- "rougail.general.condition": "oui",
- "services.test_service.files.file1.name": "/tmp/file1",
- "services.test_service.files.file1.source": "file1",
- "services.test_service.files.file1.activate": false,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.condition": "oui"
}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/makedict/before.json b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/makedict/before.json
index 44d5addf3..84fd776c0 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/makedict/before.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/makedict/before.json
@@ -2,25 +2,5 @@
"rougail.general.condition": {
"owner": "default",
"value": "oui"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 1870fbcbe..9804e674c 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
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_10 = StrOption(name="source", doc="source", default="file1")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
-optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/multi.py
index 91d2a02ad..45a5b6334 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="source", doc="source", default="file1")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
-optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_21 = StrOption(name="source", doc="source", default="file1")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
-optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabled_if_in_none/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_none/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..6990fe4b4
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_none/dictionaries/rougail/00-base.yml
@@ -0,0 +1,29 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if not rougail.general.condition %}
+ if not rougail.general.condition
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if not rougail.general.condition %}
+ if not rougail.general.condition
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_in_none/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_none/tiramisu/base.py
index dff81f0f3..f7dad4d44 100644
--- a/tests/dictionaries/10load_disabled_if_in_none/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_none/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue(None)}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue(None)}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if not rougail.general.condition %}\nif not rougail.general.condition\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if not rougail.general.condition %}\nif not rougail.general.condition\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_none/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_none/tiramisu/multi.py
index 9e0aa89cc..6e2898fb5 100644
--- a/tests/dictionaries/10load_disabled_if_in_none/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_none/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue(None)}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue(None)}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue(None)}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue(None)}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if not rougail.general.condition %}\nif not rougail.general.condition\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if not rougail.general.condition %}\nif not rougail.general.condition\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if not rougail.general.condition %}\nif not rougail.general.condition\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if not rougail.general.condition %}\nif not rougail.general.condition\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabled_if_in_twice/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_twice/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..8029a552d
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_twice/dictionaries/rougail/00-base.yml
@@ -0,0 +1,34 @@
+---
+version: '1.0'
+my_var1:
+ default: 'no'
+my_var2:
+ default: 'no'
+ disabled:
+ type: jinja
+ params:
+ my_var1:
+ type: variable
+ variable: rougail.my_var1
+ propertyerror: false
+ jinja: |
+ {% if my_var1 is not defined %}
+ my_var1 is undefined!
+ {% elif my_var1 == "no" %}
+ my_var1 is no
+ {% endif %}
+my_var3:
+ default: 'no'
+ disabled:
+ params:
+ my_var2:
+ type: variable
+ variable: rougail.my_var2
+ propertyerror: false
+ type: jinja
+ jinja: |
+ {% if my_var2 is not defined %}
+ my_var2 is undefined!
+ {% elif my_var2 == "no" %}
+ my_var2 is no
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/base.py
index 38bf6765f..e73a088d1 100644
--- a/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_1, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
-option_3 = StrOption(name="my_var3", doc="my_var3", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.my_var2'] = "{% if my_var1 is not defined %}\nmy_var1 is undefined!\n{% elif my_var1 == \"no\" %}\nmy_var1 is no\n{% endif %}\n"
+dict_env['disabled_rougail.my_var3'] = "{% if my_var2 is not defined %}\nmy_var2 is undefined!\n{% elif my_var2 == \"no\" %}\nmy_var2 is no\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_2 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.my_var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'my_var1': ParamOption(option_2, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}))
+option_4 = StrOption(name="my_var3", doc="my_var3", default="no", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.my_var3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'my_var2': ParamOption(option_3, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/multi.py
index efc299a5e..332bccdaa 100644
--- a/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_1, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
-option_3 = StrOption(name="my_var3", doc="my_var3", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_4 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
-option_6 = StrOption(name="my_var3", doc="my_var3", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_5, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.my_var2'] = "{% if my_var1 is not defined %}\nmy_var1 is undefined!\n{% elif my_var1 == \"no\" %}\nmy_var1 is no\n{% endif %}\n"
+dict_env['disabled_1.rougail.my_var3'] = "{% if my_var2 is not defined %}\nmy_var2 is undefined!\n{% elif my_var2 == \"no\" %}\nmy_var2 is no\n{% endif %}\n"
+dict_env['disabled_2.rougail.my_var2'] = "{% if my_var1 is not defined %}\nmy_var1 is undefined!\n{% elif my_var1 == \"no\" %}\nmy_var1 is no\n{% endif %}\n"
+dict_env['disabled_2.rougail.my_var3'] = "{% if my_var2 is not defined %}\nmy_var2 is undefined!\n{% elif my_var2 == \"no\" %}\nmy_var2 is no\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.my_var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'my_var1': ParamOption(option_3, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="my_var3", doc="my_var3", default="no", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.my_var3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'my_var2': ParamOption(option_4, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.my_var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'my_var1': ParamOption(option_8, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}))
+option_10 = StrOption(name="my_var3", doc="my_var3", default="no", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.my_var3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'my_var2': ParamOption(option_9, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/10load_disabled_if_in_variable/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_variable/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..d3ee25dea
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_variable/dictionaries/rougail/00-base.yml
@@ -0,0 +1,25 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: choice
+ description: No change
+ default: tous
+ choices:
+ - tous
+ - authentifié
+ - aucun
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: tous
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == rougail.general.mode_conteneur_actif %}
+ rougail.general.condition == rougail.general.mode_conteneur_actif
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/base.py
index 86cf6883d..62ddc1f51 100644
--- a/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nrougail.general.condition == rougail.general.mode_conteneur_actif\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/multi.py
index 0575d9ac9..4cff46868 100644
--- a/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamOption(option_7)}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nrougail.general.condition == rougail.general.mode_conteneur_actif\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nrougail.general.condition == rougail.general.mode_conteneur_actif\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4), 'rougail.general.mode_conteneur_actif': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10), 'rougail.general.mode_conteneur_actif': ParamOption(option_11)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabled_if_in_variable2/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_in_variable2/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f4dba7779
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_in_variable2/dictionaries/rougail/00-base.yml
@@ -0,0 +1,25 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: choice
+ description: No change
+ default: tous
+ choices:
+ - tous
+ - authentifié
+ - aucun
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: aucun
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == rougail.general.mode_conteneur_actif %}
+ rougail.general.condition == rougail.general.mode_conteneur_actif
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/base.py
index 4e1daa486..f516afd2a 100644
--- a/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="aucun", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nrougail.general.condition == rougail.general.mode_conteneur_actif\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="aucun", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/multi.py
index c1a9e346f..174337355 100644
--- a/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="aucun", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="aucun", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamOption(option_7)}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nrougail.general.condition == rougail.general.mode_conteneur_actif\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nrougail.general.condition == rougail.general.mode_conteneur_actif\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="aucun", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4), 'rougail.general.mode_conteneur_actif': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="aucun", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10), 'rougail.general.mode_conteneur_actif': ParamOption(option_11)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_not_in_fallback/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f135c3e16
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_not_in_fallback/dictionaries/rougail/00-base.yml
@@ -0,0 +1,22 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: 'no'
+ disable_variable:
+ type: string
+ description: No change
+ default: 'no'
+ disabled:
+ type: jinja
+ params:
+ unknown:
+ type: 'variable'
+ variable: rougail.general.unknown
+ optional: true
+ jinja: |
+ {% if unknown is defined and unknown != "no" %}
+ unknown is defined !
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback/makedict/after.json b/tests/dictionaries/10load_disabled_if_not_in_fallback/makedict/after.json
index d89acf031..4b3727059 100644
--- a/tests/dictionaries/10load_disabled_if_not_in_fallback/makedict/after.json
+++ b/tests/dictionaries/10load_disabled_if_not_in_fallback/makedict/after.json
@@ -6,25 +6,5 @@
"rougail.general.disable_variable": {
"owner": "default",
"value": "no"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 6ee77b6f6..83bab05bc 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,9 +1,4 @@
{
"rougail.general.condition": "no",
- "rougail.general.disable_variable": "no",
- "services.test_service.files.file1.name": "/tmp/file1",
- "services.test_service.files.file1.source": "file1",
- "services.test_service.files.file1.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.disable_variable": "no"
}
diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback/makedict/before.json b/tests/dictionaries/10load_disabled_if_not_in_fallback/makedict/before.json
index d89acf031..4b3727059 100644
--- a/tests/dictionaries/10load_disabled_if_not_in_fallback/makedict/before.json
+++ b/tests/dictionaries/10load_disabled_if_not_in_fallback/makedict/before.json
@@ -6,25 +6,5 @@
"rougail.general.disable_variable": {
"owner": "default",
"value": "no"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": 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 79d2b28cc..7cf343330 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
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,58 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="disable_variable", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_8 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_9 = StrOption(name="source", doc="source", default="file1")
-option_7 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_6 = OptionDescription(name="file1", doc="file1", children=[option_8, option_9, option_7])
-optiondescription_5 = OptionDescription(name="files", doc="files", children=[optiondescription_6])
-option_4 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_13 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_5, option_4, option_10])
-optiondescription_13.impl_set_information('type', "service")
-optiondescription_12 = OptionDescription(name="services", doc="services", children=[optiondescription_13], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_12])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.disable_variable'] = "{% if unknown is defined and unknown != \"no\" %}\nunknown is defined !\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="disable_variable", doc="No change", default="no", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.disable_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/multi.py
index acca3b2cd..1aedf5ccc 100644
--- a/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,45 +17,65 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="disable_variable", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_22 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_11 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_12 = StrOption(name="source", doc="source", default="file1")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="file1", doc="file1", children=[option_11, option_12, option_10])
-optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
-option_7 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_24 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_8, option_7, option_13])
-optiondescription_24.impl_set_information('type', "service")
-optiondescription_23 = OptionDescription(name="services", doc="services", children=[optiondescription_24], properties=frozenset({"hidden"}))
-optiondescription_21 = OptionDescription(name="1", doc="1", children=[optiondescription_22, optiondescription_23])
-option_5 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="disable_variable", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_26 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_18 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_19 = StrOption(name="source", doc="source", default="file1")
-option_17 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_16 = OptionDescription(name="file1", doc="file1", children=[option_18, option_19, option_17])
-optiondescription_15 = OptionDescription(name="files", doc="files", children=[optiondescription_16])
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_20 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_28 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_15, option_14, option_20])
-optiondescription_28.impl_set_information('type', "service")
-optiondescription_27 = OptionDescription(name="services", doc="services", children=[optiondescription_28], properties=frozenset({"hidden"}))
-optiondescription_25 = OptionDescription(name="2", doc="2", children=[optiondescription_26, optiondescription_27])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_21, optiondescription_25])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.disable_variable'] = "{% if unknown is defined and unknown != \"no\" %}\nunknown is defined !\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.disable_variable'] = "{% if unknown is defined and unknown != \"no\" %}\nunknown is defined !\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="disable_variable", doc="No change", default="no", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.disable_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="disable_variable", doc="No change", default="no", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.disable_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback_force/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabled_if_not_in_fallback_force/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..46e648f6e
--- /dev/null
+++ b/tests/dictionaries/10load_disabled_if_not_in_fallback_force/dictionaries/rougail/00-base.yml
@@ -0,0 +1,31 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ params:
+ activer_client_ldap:
+ type: variable
+ variable: rougail.general.activer_client_ldap
+ optional: true
+ jinja: |
+ {% if activer_client_ldap is not defined %}
+ activer_client_ldap is undefined
+ {% elif activer_client_ldap == "non" %}
+ false
+ {% else %}
+ activer_client_ldap is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled: true
diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/base.py
index 9fb762737..1615318f8 100644
--- a/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is not defined %}\nactiver_client_ldap is undefined\n{% elif activer_client_ldap == \"non\" %}\nfalse\n{% else %}\nactiver_client_ldap is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/multi.py
index 610858500..c6f0f9408 100644
--- a/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is not defined %}\nactiver_client_ldap is undefined\n{% elif activer_client_ldap == \"non\" %}\nfalse\n{% else %}\nactiver_client_ldap is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is not defined %}\nactiver_client_ldap is undefined\n{% elif activer_client_ldap == \"non\" %}\nfalse\n{% else %}\nactiver_client_ldap is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabledifin_fallback/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabledifin_fallback/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..7971cfc7e
--- /dev/null
+++ b/tests/dictionaries/10load_disabledifin_fallback/dictionaries/rougail/00-base.yml
@@ -0,0 +1,34 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ params:
+ activer_client_ldap:
+ type: variable
+ variable: rougail.general.activer_client_ldap
+ optional: true
+ jinja: |
+ {% if activer_client_ldap is not defined %}
+ activer_client_ldap is undefined
+ {% elif activer_client_ldap == "non" %}
+ activer_client_ldap is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ rougail.general.condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabledifin_fallback/tiramisu/base.py b/tests/dictionaries/10load_disabledifin_fallback/tiramisu/base.py
index 8a92168aa..ea3049c96 100644
--- a/tests/dictionaries/10load_disabledifin_fallback/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabledifin_fallback/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is not defined %}\nactiver_client_ldap is undefined\n{% elif activer_client_ldap == \"non\" %}\nactiver_client_ldap is oui\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabledifin_fallback/tiramisu/multi.py b/tests/dictionaries/10load_disabledifin_fallback/tiramisu/multi.py
index a06f22fa1..77e8de48a 100644
--- a/tests/dictionaries/10load_disabledifin_fallback/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabledifin_fallback/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is not defined %}\nactiver_client_ldap is undefined\n{% elif activer_client_ldap == \"non\" %}\nactiver_client_ldap is oui\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is not defined %}\nactiver_client_ldap is undefined\n{% elif activer_client_ldap == \"non\" %}\nactiver_client_ldap is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabledifin_fallback_force/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabledifin_fallback_force/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ffa861b92
--- /dev/null
+++ b/tests/dictionaries/10load_disabledifin_fallback_force/dictionaries/rougail/00-base.yml
@@ -0,0 +1,31 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ params:
+ type: variable
+ variable: rougail.general.activer_client_ldap
+ optional: true
+ jinja: |
+ {% if activer_client_ldap is defined and activer_client_ldap == "non" %}
+ activer_client_ldap is non
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ rougail.general.condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/base.py b/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/base.py
index cb18be276..b5403a536 100644
--- a/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is defined and activer_client_ldap == \"non\" %}\nactiver_client_ldap is non\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'type': ParamValue("variable"), 'variable': ParamValue("rougail.general.activer_client_ldap"), 'optional': ParamValue(True)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/multi.py b/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/multi.py
index 7ff4047ce..c1655ffcc 100644
--- a/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is defined and activer_client_ldap == \"non\" %}\nactiver_client_ldap is non\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is defined and activer_client_ldap == \"non\" %}\nactiver_client_ldap is non\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'type': ParamValue("variable"), 'variable': ParamValue("rougail.general.activer_client_ldap"), 'optional': ParamValue(True)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'type': ParamValue("variable"), 'variable': ParamValue("rougail.general.activer_client_ldap"), 'optional': ParamValue(True)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_disabledifin_whithouttype/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_disabledifin_whithouttype/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ab36d7a06
--- /dev/null
+++ b/tests/dictionaries/10load_disabledifin_whithouttype/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ rougail.general.condition == "oui"
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ rougail.general.condition == "oui"
+ {% endif %}
diff --git a/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/base.py b/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/base.py
index cb18be276..3efae9d88 100644
--- a/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition == \"oui\"\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition == \"oui\"\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/multi.py b/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/multi.py
index 7ff4047ce..180c2288f 100644
--- a/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/multi.py
+++ b/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition == \"oui\"\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition == \"oui\"\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition == \"oui\"\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition == \"oui\"\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_frozenifin/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_frozenifin/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1112cea9b
--- /dev/null
+++ b/tests/dictionaries/10load_frozenifin/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/10load_frozenifin/tiramisu/base.py b/tests/dictionaries/10load_frozenifin/tiramisu/base.py
index 9849ab658..13a806a29 100644
--- a/tests/dictionaries/10load_frozenifin/tiramisu/base.py
+++ b/tests/dictionaries/10load_frozenifin/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_frozenifin/tiramisu/multi.py b/tests/dictionaries/10load_frozenifin/tiramisu/multi.py
index 47d705f0a..fef51cb10 100644
--- a/tests/dictionaries/10load_frozenifin/tiramisu/multi.py
+++ b/tests/dictionaries/10load_frozenifin/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,73 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_frozenifin_auto/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_frozenifin_auto/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4dad89161
--- /dev/null
+++ b/tests/dictionaries/10load_frozenifin_auto/dictionaries/rougail/00-base.yml
@@ -0,0 +1,29 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_val }}'
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/10load_frozenifin_auto/tiramisu/base.py b/tests/dictionaries/10load_frozenifin_auto/tiramisu/base.py
index 3c2a9f103..de8080f0d 100644
--- a/tests/dictionaries/10load_frozenifin_auto/tiramisu/base.py
+++ b/tests/dictionaries/10load_frozenifin_auto/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("non")))), properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"non\" | calc_val }}"
+dict_env['hidden_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_frozenifin_auto/tiramisu/multi.py b/tests/dictionaries/10load_frozenifin_auto/tiramisu/multi.py
index 6fdf48f36..d9263ee86 100644
--- a/tests/dictionaries/10load_frozenifin_auto/tiramisu/multi.py
+++ b/tests/dictionaries/10load_frozenifin_auto/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,75 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("non")))), properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("non")))), properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | calc_val }}"
+dict_env['hidden_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | calc_val }}"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_frozenifin_multiparam/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_frozenifin_multiparam/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..cef1b8113
--- /dev/null
+++ b/tests/dictionaries/10load_frozenifin_multiparam/dictionaries/rougail/00-base.yml
@@ -0,0 +1,31 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: choice
+ description: No change
+ default: tous
+ choices:
+ - tous
+ - authentifié
+ - aucun
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "tous" or rougail.general.condition == "authentifié" %}
+ it's hidden
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "tous" or rougail.general.condition == "authentifié" %}
+ it's hidden
+ {% endif %}
diff --git a/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/base.py b/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/base.py
index 066ca08ef..f12a02c7b 100644
--- a/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/base.py
+++ b/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n"
+dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/multi.py b/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/multi.py
index 8c9ab3698..8bd4ad6fd 100644
--- a/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/multi.py
+++ b/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,73 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n"
+dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_frozenifin_noexist/makedict/after.json b/tests/dictionaries/10load_frozenifin_noexist/makedict/after.json
deleted file mode 100644
index 8647ce6a2..000000000
--- a/tests/dictionaries/10load_frozenifin_noexist/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.condition": {
- "owner": "default",
- "value": "tous"
- },
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.mode_conteneur_actif2": {
- "owner": "default",
- "value": "non"
- }
-}
diff --git a/tests/dictionaries/10load_frozenifin_noexist/makedict/base.json b/tests/dictionaries/10load_frozenifin_noexist/makedict/base.json
deleted file mode 100644
index 13a9e66cd..000000000
--- a/tests/dictionaries/10load_frozenifin_noexist/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.general.condition": "tous",
- "rougail.general.mode_conteneur_actif": "non",
- "rougail.general.mode_conteneur_actif2": "non"
-}
diff --git a/tests/dictionaries/10load_frozenifin_noexist/makedict/before.json b/tests/dictionaries/10load_frozenifin_noexist/makedict/before.json
deleted file mode 100644
index 8647ce6a2..000000000
--- a/tests/dictionaries/10load_frozenifin_noexist/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.condition": {
- "owner": "default",
- "value": "tous"
- },
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.mode_conteneur_actif2": {
- "owner": "default",
- "value": "non"
- }
-}
diff --git a/tests/dictionaries/10load_frozenifin_noexist/tiramisu/base.py b/tests/dictionaries/10load_frozenifin_noexist/tiramisu/base.py
deleted file mode 100644
index ddcf2b0c3..000000000
--- a/tests/dictionaries/10load_frozenifin_noexist/tiramisu/base.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/10load_frozenifin_variable/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_frozenifin_variable/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..66dde4410
--- /dev/null
+++ b/tests/dictionaries/10load_frozenifin_variable/dictionaries/rougail/00-base.yml
@@ -0,0 +1,25 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: choice
+ description: No change
+ default: tous
+ choices:
+ - tous
+ - authentifié
+ - aucun
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: tous
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == rougail.general.mode_conteneur_actif %}
+ it's hidden
+ {% endif %}
diff --git a/tests/dictionaries/10load_frozenifin_variable/tiramisu/base.py b/tests/dictionaries/10load_frozenifin_variable/tiramisu/base.py
index a54d17ea6..8f57f1a70 100644
--- a/tests/dictionaries/10load_frozenifin_variable/tiramisu/base.py
+++ b/tests/dictionaries/10load_frozenifin_variable/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nit's hidden\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_frozenifin_variable/tiramisu/multi.py b/tests/dictionaries/10load_frozenifin_variable/tiramisu/multi.py
index cf4638236..db3549c74 100644
--- a/tests/dictionaries/10load_frozenifin_variable/tiramisu/multi.py
+++ b/tests/dictionaries/10load_frozenifin_variable/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamOption(option_7)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamOption(option_7)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamOption(option_7)}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nit's hidden\n{% endif %}\n"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nit's hidden\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4), 'rougail.general.mode_conteneur_actif': ParamOption(option_5)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4), 'rougail.general.mode_conteneur_actif': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10), 'rougail.general.mode_conteneur_actif': ParamOption(option_11)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10), 'rougail.general.mode_conteneur_actif': ParamOption(option_11)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_frozenifnotin/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_frozenifnotin/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..382cbc2ed
--- /dev/null
+++ b/tests/dictionaries/10load_frozenifnotin/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition != "oui" %}
+ it's hidden
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition != "oui" %}
+ it's hidden
+ {% endif %}
diff --git a/tests/dictionaries/10load_frozenifnotin/tiramisu/base.py b/tests/dictionaries/10load_frozenifnotin/tiramisu/base.py
index c945fc18a..bba532c1b 100644
--- a/tests/dictionaries/10load_frozenifnotin/tiramisu/base.py
+++ b/tests/dictionaries/10load_frozenifnotin/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n"
+dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_frozenifnotin/tiramisu/multi.py b/tests/dictionaries/10load_frozenifnotin/tiramisu/multi.py
index 15b1ee754..752514c6b 100644
--- a/tests/dictionaries/10load_frozenifnotin/tiramisu/multi.py
+++ b/tests/dictionaries/10load_frozenifnotin/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,73 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n"
+dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_frozenifnotin_noexist/makedict/after.json b/tests/dictionaries/10load_frozenifnotin_noexist/makedict/after.json
deleted file mode 100644
index 8647ce6a2..000000000
--- a/tests/dictionaries/10load_frozenifnotin_noexist/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.condition": {
- "owner": "default",
- "value": "tous"
- },
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.mode_conteneur_actif2": {
- "owner": "default",
- "value": "non"
- }
-}
diff --git a/tests/dictionaries/10load_frozenifnotin_noexist/makedict/base.json b/tests/dictionaries/10load_frozenifnotin_noexist/makedict/base.json
deleted file mode 100644
index 13a9e66cd..000000000
--- a/tests/dictionaries/10load_frozenifnotin_noexist/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.general.condition": "tous",
- "rougail.general.mode_conteneur_actif": "non",
- "rougail.general.mode_conteneur_actif2": "non"
-}
diff --git a/tests/dictionaries/10load_frozenifnotin_noexist/makedict/before.json b/tests/dictionaries/10load_frozenifnotin_noexist/makedict/before.json
deleted file mode 100644
index 8647ce6a2..000000000
--- a/tests/dictionaries/10load_frozenifnotin_noexist/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.condition": {
- "owner": "default",
- "value": "tous"
- },
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.mode_conteneur_actif2": {
- "owner": "default",
- "value": "non"
- }
-}
diff --git a/tests/dictionaries/10load_frozenifnotin_noexist/tiramisu/base.py b/tests/dictionaries/10load_frozenifnotin_noexist/tiramisu/base.py
deleted file mode 100644
index ddcf2b0c3..000000000
--- a/tests/dictionaries/10load_frozenifnotin_noexist/tiramisu/base.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/10load_hidden_if_empty_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_hidden_if_empty_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..77fe590ae
--- /dev/null
+++ b/tests/dictionaries/10load_hidden_if_empty_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,37 @@
+---
+version: '1.0'
+general:
+ description: Général
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+general2:
+ description: Général2
+ type: family
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/base.py b/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/base.py
index 82febd39a..cef56d92f 100644
--- a/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/base.py
+++ b/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="Général", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="Général", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/multi.py b/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/multi.py
index 19beadef1..48329de2c 100644
--- a/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/multi.py
+++ b/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,73 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="Général", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_9 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_6 = OptionDescription(name="general", doc="Général", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="Général", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_11)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_11)}), help_function=func['jinja_to_property_help'])}))
+option_13 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_11)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_11)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_10 = OptionDescription(name="general", doc="Général", children=[option_11, option_12, option_13], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/10load_hidden_if_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_hidden_if_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..745c18db6
--- /dev/null
+++ b/tests/dictionaries/10load_hidden_if_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,41 @@
+---
+version: '1.0'
+general:
+ description: Général
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+general2:
+ description: Général2
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/10load_hidden_if_family/tiramisu/base.py b/tests/dictionaries/10load_hidden_if_family/tiramisu/base.py
index fb7cb4d5e..c878f9994 100644
--- a/tests/dictionaries/10load_hidden_if_family/tiramisu/base.py
+++ b/tests/dictionaries/10load_hidden_if_family/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,65 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="Général", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general2", doc="Général2", children=[option_6], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_5], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_rougail.general2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="Général", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+option_7 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="general2", doc="Général2", children=[option_7], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_hidden_if_family/tiramisu/multi.py b/tests/dictionaries/10load_hidden_if_family/tiramisu/multi.py
index cb8f57999..787272acc 100644
--- a/tests/dictionaries/10load_hidden_if_family/tiramisu/multi.py
+++ b/tests/dictionaries/10load_hidden_if_family/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,79 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="Général", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general2", doc="Général2", children=[option_6], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_10 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_7 = OptionDescription(name="general", doc="Général", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
-option_12 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_11 = OptionDescription(name="general2", doc="Général2", children=[option_12], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['hidden_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_1.rougail.general2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['hidden_2.rougail.general2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="Général", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general2", doc="Général2", children=[option_8], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_12)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_12)}), help_function=func['jinja_to_property_help'])}))
+option_14 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_12)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_12)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_11 = OptionDescription(name="general", doc="Général", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
+option_16 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_15 = OptionDescription(name="general2", doc="Général2", children=[option_16], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_12)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/10load_leadership/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_leadership/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..6e211d24a
--- /dev/null
+++ b/tests/dictionaries/10load_leadership/dictionaries/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/10load_leadership/tiramisu/base.py b/tests/dictionaries/10load_leadership/tiramisu/base.py
index b2e1e40ed..7923994a8 100644
--- a/tests/dictionaries/10load_leadership/tiramisu/base.py
+++ b/tests/dictionaries/10load_leadership/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_leadership/tiramisu/multi.py b/tests/dictionaries/10load_leadership/tiramisu/multi.py
index 26bdb6957..45d7cc84e 100644
--- a/tests/dictionaries/10load_leadership/tiramisu/multi.py
+++ b/tests/dictionaries/10load_leadership/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,33 +17,75 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"normal"}))
-option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_13 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_14 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_13)))), properties=frozenset({"normal"}))
-optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="general1", doc="general1", children=[optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_1.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+dict_env['default_2.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_2.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_8)})), properties=frozenset({"normal"}))
+optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="general1", doc="general1", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"normal"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_17)})), properties=frozenset({"normal"}))
+optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="general1", doc="general1", children=[optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/10load_leadership_default_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_leadership_default_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c24cb4088
--- /dev/null
+++ b/tests/dictionaries/10load_leadership_default_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default: value
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries/10load_leadership_default_multi/tiramisu/base.py b/tests/dictionaries/10load_leadership_default_multi/tiramisu/base.py
index 5d0eed403..f9ac4d35b 100644
--- a/tests/dictionaries/10load_leadership_default_multi/tiramisu/base.py
+++ b/tests/dictionaries/10load_leadership_default_multi/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,13 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+option_3 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_leadership_default_multi/tiramisu/multi.py b/tests/dictionaries/10load_leadership_default_multi/tiramisu/multi.py
index 66fbeddff..658295297 100644
--- a/tests/dictionaries/10load_leadership_default_multi/tiramisu/multi.py
+++ b/tests/dictionaries/10load_leadership_default_multi/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,22 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_11 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "normal"}))
-option_12 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+option_4 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_14 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_15 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "normal"}))
+option_16 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_13 = Leadership(name="leader", doc="leader", children=[option_14, option_15, option_16], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12, optiondescription_13], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/10load_leadership_default_submulti/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_leadership_default_submulti/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..9b3d2c6b7
--- /dev/null
+++ b/tests/dictionaries/10load_leadership_default_submulti/dictionaries/rougail/00-base.yml
@@ -0,0 +1,31 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - leader
+ follower1:
+ type: string
+ description: follower1
+ multi: true
+ default:
+ - value
+ follower2:
+ type: string
+ description: follower2
+ multi: true
+ default:
+ - value1
+ - value2
diff --git a/tests/dictionaries/10load_leadership_default_submulti/tiramisu/base.py b/tests/dictionaries/10load_leadership_default_submulti/tiramisu/base.py
index ff4747fd3..1c4926468 100644
--- a/tests/dictionaries/10load_leadership_default_submulti/tiramisu/base.py
+++ b/tests/dictionaries/10load_leadership_default_submulti/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,13 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, default=['leader'], properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+option_3 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, default=['leader'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_leadership_default_submulti/tiramisu/multi.py b/tests/dictionaries/10load_leadership_default_submulti/tiramisu/multi.py
index f9799e0a0..7fdee34b5 100644
--- a/tests/dictionaries/10load_leadership_default_submulti/tiramisu/multi.py
+++ b/tests/dictionaries/10load_leadership_default_submulti/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,22 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, default=['leader'], properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="leader", doc="leader", multi=True, default=['leader'], properties=frozenset({"mandatory", "normal"}))
-option_11 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "normal"}))
-option_12 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+option_4 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, default=['leader'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_14 = StrOption(name="leader", doc="leader", multi=True, default=['leader'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_15 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_16 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_13 = Leadership(name="leader", doc="leader", children=[option_14, option_15, option_16], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12, optiondescription_13], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/10load_leadership_defaultmulti_leader/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_leadership_defaultmulti_leader/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4ba8fa051
--- /dev/null
+++ b/tests/dictionaries/10load_leadership_defaultmulti_leader/dictionaries/rougail/00-base.yml
@@ -0,0 +1,23 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - value
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/base.py b/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/base.py
index 41ed41d7a..baa4ad675 100644
--- a/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/base.py
+++ b/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,13 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, default=['value'], properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+option_3 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, default=['value'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/multi.py b/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/multi.py
index 8f6e6ed22..0faa2c3b0 100644
--- a/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/multi.py
+++ b/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,22 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, default=['value'], properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="leader", doc="leader", multi=True, default=['value'], properties=frozenset({"mandatory", "normal"}))
-option_11 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
-option_12 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+option_4 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, default=['value'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_14 = StrOption(name="leader", doc="leader", multi=True, default=['value'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_15 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_16 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_13 = Leadership(name="leader", doc="leader", children=[option_14, option_15, option_16], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12, optiondescription_13], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/10load_leadership_description/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_leadership_description/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..b17bdc622
--- /dev/null
+++ b/tests/dictionaries/10load_leadership_description/dictionaries/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: other description
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/10load_leadership_description/tiramisu/base.py b/tests/dictionaries/10load_leadership_description/tiramisu/base.py
index 628b91b40..c09537d1d 100644
--- a/tests/dictionaries/10load_leadership_description/tiramisu/base.py
+++ b/tests/dictionaries/10load_leadership_description/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="other description", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="other description", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_leadership_description/tiramisu/multi.py b/tests/dictionaries/10load_leadership_description/tiramisu/multi.py
index 388eff47c..5f6362f18 100644
--- a/tests/dictionaries/10load_leadership_description/tiramisu/multi.py
+++ b/tests/dictionaries/10load_leadership_description/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,33 +17,75 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="other description", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"normal"}))
-option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_13 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_14 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_13)))), properties=frozenset({"normal"}))
-optiondescription_11 = Leadership(name="leader", doc="other description", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="general1", doc="general1", children=[optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_1.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+dict_env['default_2.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_2.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_8)})), properties=frozenset({"normal"}))
+optiondescription_6 = Leadership(name="leader", doc="other description", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="general1", doc="general1", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"normal"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.leader.follower1': ParamOption(option_17)})), properties=frozenset({"normal"}))
+optiondescription_15 = Leadership(name="leader", doc="other description", children=[option_16, option_17, option_18], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="general1", doc="general1", children=[optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/10load_leadership_name/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_leadership_name/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f677d09a0
--- /dev/null
+++ b/tests/dictionaries/10load_leadership_name/dictionaries/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ other_name:
+ description: other_name
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.other_name.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/10load_leadership_name/tiramisu/base.py b/tests/dictionaries/10load_leadership_name/tiramisu/base.py
index 796e87c5d..f488dd23d 100644
--- a/tests/dictionaries/10load_leadership_name/tiramisu/base.py
+++ b/tests/dictionaries/10load_leadership_name/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="other_name", doc="other_name", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general1.other_name.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_rougail.general1.other_name.follower2'] = "{{ rougail.general1.other_name.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.other_name.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.other_name.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.other_name.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="other_name", doc="other_name", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_leadership_name/tiramisu/multi.py b/tests/dictionaries/10load_leadership_name/tiramisu/multi.py
index c772c75eb..88e2852d6 100644
--- a/tests/dictionaries/10load_leadership_name/tiramisu/multi.py
+++ b/tests/dictionaries/10load_leadership_name/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,33 +17,75 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="other_name", doc="other_name", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"normal"}))
-option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_13 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_14 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_13)))), properties=frozenset({"normal"}))
-optiondescription_11 = Leadership(name="other_name", doc="other_name", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="general1", doc="general1", children=[optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general1.other_name.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_1.rougail.general1.other_name.follower2'] = "{{ rougail.general1.other_name.follower1 | calc_val }}"
+dict_env['default_2.rougail.general1.other_name.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_2.rougail.general1.other_name.follower2'] = "{{ rougail.general1.other_name.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.other_name.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.other_name.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.other_name.follower1': ParamOption(option_8)})), properties=frozenset({"normal"}))
+optiondescription_6 = Leadership(name="other_name", doc="other_name", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="general1", doc="general1", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"normal"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.other_name.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.other_name.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general1.other_name.follower1': ParamOption(option_17)})), properties=frozenset({"normal"}))
+optiondescription_15 = Leadership(name="other_name", doc="other_name", children=[option_16, option_17, option_18], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="general1", doc="general1", children=[optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/10load_leadership_submulti/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_leadership_submulti/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1c4a4b105
--- /dev/null
+++ b/tests/dictionaries/10load_leadership_submulti/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ multi: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/10load_leadership_submulti/tiramisu/base.py b/tests/dictionaries/10load_leadership_submulti/tiramisu/base.py
index b9ce7fa94..dbda39a34 100644
--- a/tests/dictionaries/10load_leadership_submulti/tiramisu/base.py
+++ b/tests/dictionaries/10load_leadership_submulti/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=submulti, default=[Calculation(func.calc_val, Params((ParamOption(option_6))))], properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=submulti, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.general1.leader.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_leadership_submulti/tiramisu/multi.py b/tests/dictionaries/10load_leadership_submulti/tiramisu/multi.py
index 6c0fdbe5c..508969c86 100644
--- a/tests/dictionaries/10load_leadership_submulti/tiramisu/multi.py
+++ b/tests/dictionaries/10load_leadership_submulti/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,33 +17,75 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=submulti, default=[Calculation(func.calc_val, Params((ParamOption(option_6))))], properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"normal"}))
-option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_13 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_14 = StrOption(name="follower2", doc="follower2", multi=submulti, default=[Calculation(func.calc_val, Params((ParamOption(option_13))))], properties=frozenset({"normal"}))
-optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="general1", doc="general1", children=[optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_1.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+dict_env['default_2.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['default_2.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=submulti, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.general1.leader.follower1': ParamOption(option_8)})), properties=frozenset({"normal"}))
+optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="general1", doc="general1", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"normal"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=submulti, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general1.leader.follower2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.general1.leader.follower1': ParamOption(option_17)})), properties=frozenset({"normal"}))
+optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="general1", doc="general1", children=[optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/10load_mandatoryifin/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_mandatoryifin/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..dccd1dabc
--- /dev/null
+++ b/tests/dictionaries/10load_mandatoryifin/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ mandatory:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ mandatory:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/10load_mandatoryifin/tiramisu/base.py b/tests/dictionaries/10load_mandatoryifin/tiramisu/base.py
index 1b970502b..b1724840a 100644
--- a/tests/dictionaries/10load_mandatoryifin/tiramisu/base.py
+++ b/tests/dictionaries/10load_mandatoryifin/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('mandatory'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('mandatory'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['mandatory_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['mandatory_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_mandatoryifin/tiramisu/multi.py b/tests/dictionaries/10load_mandatoryifin/tiramisu/multi.py
index ed04115fa..269e39bac 100644
--- a/tests/dictionaries/10load_mandatoryifin/tiramisu/multi.py
+++ b/tests/dictionaries/10load_mandatoryifin/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('mandatory'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('mandatory'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('mandatory'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('mandatory'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['mandatory_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['mandatory_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['mandatory_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['mandatory_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10load_mandatoryifnotin_noexist/makedict/after.json b/tests/dictionaries/10load_mandatoryifnotin_noexist/makedict/after.json
deleted file mode 100644
index 8647ce6a2..000000000
--- a/tests/dictionaries/10load_mandatoryifnotin_noexist/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.condition": {
- "owner": "default",
- "value": "tous"
- },
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.mode_conteneur_actif2": {
- "owner": "default",
- "value": "non"
- }
-}
diff --git a/tests/dictionaries/10load_mandatoryifnotin_noexist/makedict/base.json b/tests/dictionaries/10load_mandatoryifnotin_noexist/makedict/base.json
deleted file mode 100644
index 13a9e66cd..000000000
--- a/tests/dictionaries/10load_mandatoryifnotin_noexist/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.general.condition": "tous",
- "rougail.general.mode_conteneur_actif": "non",
- "rougail.general.mode_conteneur_actif2": "non"
-}
diff --git a/tests/dictionaries/10load_mandatoryifnotin_noexist/makedict/before.json b/tests/dictionaries/10load_mandatoryifnotin_noexist/makedict/before.json
deleted file mode 100644
index 8647ce6a2..000000000
--- a/tests/dictionaries/10load_mandatoryifnotin_noexist/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.condition": {
- "owner": "default",
- "value": "tous"
- },
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.mode_conteneur_actif2": {
- "owner": "default",
- "value": "non"
- }
-}
diff --git a/tests/dictionaries/10load_mandatoryifnotin_noexist/tiramisu/base.py b/tests/dictionaries/10load_mandatoryifnotin_noexist/tiramisu/base.py
deleted file mode 100644
index ddcf2b0c3..000000000
--- a/tests/dictionaries/10load_mandatoryifnotin_noexist/tiramisu/base.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/10load_mandatoryifnotin_noexist/tmp/base.py b/tests/dictionaries/10load_mandatoryifnotin_noexist/tmp/base.py
new file mode 100644
index 000000000..f283bb4f2
--- /dev/null
+++ b/tests/dictionaries/10load_mandatoryifnotin_noexist/tmp/base.py
@@ -0,0 +1,72 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value)
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['mandatory_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"non\" %}false{% else %}true{% endif %}"
+dict_env['mandatory_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"non\" %}false{% else %}true{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}))}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}))}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_multivalue/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_multivalue/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..641ad2f39
--- /dev/null
+++ b/tests/dictionaries/10load_multivalue/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ multi: true
+ default:
+ - non
+ - oui
+version: '1.0'
diff --git a/tests/dictionaries/10load_multivalue/tiramisu/base.py b/tests/dictionaries/10load_multivalue/tiramisu/base.py
index e8b42c29d..06cf88a65 100644
--- a/tests/dictionaries/10load_multivalue/tiramisu/base.py
+++ b/tests/dictionaries/10load_multivalue/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=['non', 'oui'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=['non', 'oui'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_multivalue/tiramisu/multi.py b/tests/dictionaries/10load_multivalue/tiramisu/multi.py
index e6ede54c8..db829b9dd 100644
--- a/tests/dictionaries/10load_multivalue/tiramisu/multi.py
+++ b/tests/dictionaries/10load_multivalue/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=['non', 'oui'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=['non', 'oui'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=['non', 'oui'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=['non', 'oui'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/10valid_enum_accent/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_accent/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0378ed8cf
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_accent/dictionaries/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: c
+ choices:
+ - a
+ - b
+ - c
+ - é
+version: '1.0'
diff --git a/tests/dictionaries/10valid_enum_accent/tiramisu/base.py b/tests/dictionaries/10valid_enum_accent/tiramisu/base.py
index 80e047c4c..ad8c11baa 100644
--- a/tests/dictionaries/10valid_enum_accent/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_accent/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c', 'é'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c", "é"), default="c", properties=frozenset({"expert", "mandatory"}))
+option_5.impl_set_information('help', "bla bla bla")
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_accent/tiramisu/multi.py b/tests/dictionaries/10valid_enum_accent/tiramisu/multi.py
index bda775260..c5adc6968 100644
--- a/tests/dictionaries/10valid_enum_accent/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_accent/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c', 'é'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
-option_8 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c', 'é'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_8.impl_set_information('help', "bla bla bla")
-optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c", "é"), default="c", properties=frozenset({"expert", "mandatory"}))
+option_6.impl_set_information('help', "bla bla bla")
+optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"expert"}))
+option_12 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c", "é"), default="c", properties=frozenset({"expert", "mandatory"}))
+option_12.impl_set_information('help', "bla bla bla")
+optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10valid_enum_append/tiramisu/base.py b/tests/dictionaries/10valid_enum_append/tiramisu/base.py
deleted file mode 100644
index 95be6fc86..000000000
--- a/tests/dictionaries/10valid_enum_append/tiramisu/base.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/10valid_enum_append/tmp/base.py b/tests/dictionaries/10valid_enum_append/tmp/base.py
new file mode 100644
index 000000000..d3743158a
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_append/tmp/base.py
@@ -0,0 +1,28 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="multi", values=('c',), default="c", properties=frozenset({"expert", "mandatory"}))
+option_5.impl_set_information('help', "bla bla bla")
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_base/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_base/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..dfa17db97
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_base/dictionaries/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: c
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries/10valid_enum_base/tiramisu/base.py b/tests/dictionaries/10valid_enum_base/tiramisu/base.py
index 95be6fc86..ef03e1502 100644
--- a/tests/dictionaries/10valid_enum_base/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_base/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"expert", "mandatory"}))
+option_5.impl_set_information('help', "bla bla bla")
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_base/tiramisu/multi.py b/tests/dictionaries/10valid_enum_base/tiramisu/multi.py
index 96e055d89..7c3168242 100644
--- a/tests/dictionaries/10valid_enum_base/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_base/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
-option_8 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_8.impl_set_information('help', "bla bla bla")
-optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"expert", "mandatory"}))
+option_6.impl_set_information('help', "bla bla bla")
+optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"expert"}))
+option_12 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"expert", "mandatory"}))
+option_12.impl_set_information('help', "bla bla bla")
+optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10valid_enum_base_no_mandatory/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_base_no_mandatory/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c4f293044
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_base_no_mandatory/dictionaries/rougail/00-base.yml
@@ -0,0 +1,17 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ mandatory: false
+ type: choice
+ default: c
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/base.py b/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/base.py
index 18814eb7f..5fc5e0ca9 100644
--- a/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,11 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="enumvar", values=('a', 'b', 'c', None), default="c", properties=frozenset({"expert"}))
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=("a", "b", "c", None), default="c", properties=frozenset({"expert"}))
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/multi.py b/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/multi.py
index 83b4dfcad..754e31eb8 100644
--- a/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,18 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="enumvar", values=('a', 'b', 'c', None), default="c", properties=frozenset({"expert"}))
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
-option_8 = ChoiceOption(name="enumvar", doc="enumvar", values=('a', 'b', 'c', None), default="c", properties=frozenset({"expert"}))
-optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_6 = ChoiceOption(name="enumvar", doc="enumvar", values=("a", "b", "c", None), default="c", properties=frozenset({"expert"}))
+optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"expert"}))
+option_12 = ChoiceOption(name="enumvar", doc="enumvar", values=("a", "b", "c", None), default="c", properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10valid_enum_base_redefine/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_base_redefine/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..422b1d597
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_base_redefine/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+---
+version: '1.0'
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar2:
+ type: choice
+ description: multi
+ default: c
+ choices:
+ - a
+ - b
+ - c
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: c
+ choices:
+ - a
+ - b
+ - c
diff --git a/tests/dictionaries/10valid_enum_base_redefine/dictionaries/rougail/01-base.yml b/tests/dictionaries/10valid_enum_base_redefine/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..9aaac8efa
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_base_redefine/dictionaries/rougail/01-base.yml
@@ -0,0 +1,10 @@
+---
+version: '1.0'
+enumfam:
+ enumvar:
+ redefine: true
+ validators: null
+ default: c
+ choices:
+ - a
+ - c
diff --git a/tests/dictionaries/10valid_enum_base_redefine/tiramisu/base.py b/tests/dictionaries/10valid_enum_base_redefine/tiramisu/base.py
index ae1aa21a1..e0e85b263 100644
--- a/tests/dictionaries/10valid_enum_base_redefine/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_base_redefine/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,13 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar2", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_5 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_5.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4, option_5], properties=frozenset({"expert"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar2", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"expert", "mandatory"}))
+option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "c"), default="c", properties=frozenset({"expert", "mandatory"}))
+option_6.impl_set_information('help', "bla bla bla")
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5, option_6], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_base_redefine/tiramisu/multi.py b/tests/dictionaries/10valid_enum_base_redefine/tiramisu/multi.py
index c80da4e5b..e2d5d293e 100644
--- a/tests/dictionaries/10valid_enum_base_redefine/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_base_redefine/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,22 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar2", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_5 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_5.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4, option_5], properties=frozenset({"expert"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7], properties=frozenset({"expert"}))
-option_9 = ChoiceOption(name="enumvar2", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_10 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
-option_10.impl_set_information('help', "bla bla bla")
-optiondescription_8 = OptionDescription(name="enumfam", doc="enumfam", children=[option_9, option_10], properties=frozenset({"expert"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6, optiondescription_8], properties=frozenset({"expert"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_6 = ChoiceOption(name="enumvar2", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"expert", "mandatory"}))
+option_7 = ChoiceOption(name="enumvar", doc="multi", values=("a", "c"), default="c", properties=frozenset({"expert", "mandatory"}))
+option_7.impl_set_information('help', "bla bla bla")
+optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6, option_7], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11], properties=frozenset({"expert"}))
+option_13 = ChoiceOption(name="enumvar2", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"expert", "mandatory"}))
+option_14 = ChoiceOption(name="enumvar", doc="multi", values=("a", "c"), default="c", properties=frozenset({"expert", "mandatory"}))
+option_14.impl_set_information('help', "bla bla bla")
+optiondescription_12 = OptionDescription(name="enumfam", doc="enumfam", children=[option_13, option_14], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10, optiondescription_12], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/10valid_enum_leader/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_leader/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..defffce64
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_leader/dictionaries/rougail/00-base.yml
@@ -0,0 +1,24 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: choice
+ description: follower1
+ default: a
+ choices:
+ - a
+ - b
+ - c
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries/10valid_enum_leader/tiramisu/base.py b/tests/dictionaries/10valid_enum_leader/tiramisu/base.py
index 8312442bf..5c2c7639e 100644
--- a/tests/dictionaries/10valid_enum_leader/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_leader/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,13 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_5 = ChoiceOption(name="follower1", doc="follower1", values=('a', 'b', 'c'), multi=True, default_multi="a", properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = ChoiceOption(name="follower1", doc="follower1", values=("a", "b", "c"), multi=True, default_multi="a", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_leader/tiramisu/multi.py b/tests/dictionaries/10valid_enum_leader/tiramisu/multi.py
index ef5b09d74..e85f7ec26 100644
--- a/tests/dictionaries/10valid_enum_leader/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_leader/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,22 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_5 = ChoiceOption(name="follower1", doc="follower1", values=('a', 'b', 'c'), multi=True, default_multi="a", properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_11 = ChoiceOption(name="follower1", doc="follower1", values=('a', 'b', 'c'), multi=True, default_multi="a", properties=frozenset({"mandatory", "normal"}))
-option_12 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = ChoiceOption(name="follower1", doc="follower1", values=("a", "b", "c"), multi=True, default_multi="a", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_15 = ChoiceOption(name="follower1", doc="follower1", values=("a", "b", "c"), multi=True, default_multi="a", properties=frozenset({"mandatory", "normal"}))
+option_16 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_13 = Leadership(name="leader", doc="leader", children=[option_14, option_15, option_16], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12, optiondescription_13], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/10valid_enum_mandatory/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_mandatory/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..dcbdb41f5
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_mandatory/dictionaries/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ mandatory: true
+ default: a
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries/10valid_enum_mandatory/tiramisu/base.py b/tests/dictionaries/10valid_enum_mandatory/tiramisu/base.py
index 14c7a03e7..15b6b7210 100644
--- a/tests/dictionaries/10valid_enum_mandatory/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_mandatory/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,11 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="a", properties=frozenset({"expert", "mandatory"}))
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="a", properties=frozenset({"expert", "mandatory"}))
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_mandatory/tiramisu/multi.py b/tests/dictionaries/10valid_enum_mandatory/tiramisu/multi.py
index f34b92385..5ae78c501 100644
--- a/tests/dictionaries/10valid_enum_mandatory/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_mandatory/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,18 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="a", properties=frozenset({"expert", "mandatory"}))
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
-option_8 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="a", properties=frozenset({"expert", "mandatory"}))
-optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="a", properties=frozenset({"expert", "mandatory"}))
+optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"expert"}))
+option_12 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="a", properties=frozenset({"expert", "mandatory"}))
+optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10valid_enum_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ffe6bce4c
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ multi:
+ type: choice
+ description: multi
+ multi: true
+ default:
+ - a
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries/10valid_enum_multi/tiramisu/base.py b/tests/dictionaries/10valid_enum_multi/tiramisu/base.py
index 8850ec26b..2f193237b 100644
--- a/tests/dictionaries/10valid_enum_multi/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_multi/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = ChoiceOption(name="multi", doc="multi", values=('a', 'b', 'c'), multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = ChoiceOption(name="multi", doc="multi", values=("a", "b", "c"), multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_multi/tiramisu/multi.py b/tests/dictionaries/10valid_enum_multi/tiramisu/multi.py
index fab9931f2..3e9ad295a 100644
--- a/tests/dictionaries/10valid_enum_multi/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_multi/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = ChoiceOption(name="multi", doc="multi", values=('a', 'b', 'c'), multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_6 = ChoiceOption(name="multi", doc="multi", values=('a', 'b', 'c'), multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = ChoiceOption(name="multi", doc="multi", values=("a", "b", "c"), multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = ChoiceOption(name="multi", doc="multi", values=("a", "b", "c"), multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/10valid_enum_none/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_none/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..342b346c8
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_none/dictionaries/rougail/00-base.yml
@@ -0,0 +1,20 @@
+---
+version: '1.0'
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ mandatory: false
+ default: b
+ choices:
+ - a
+ - b
+ - null
diff --git a/tests/dictionaries/10valid_enum_none/tiramisu/base.py b/tests/dictionaries/10valid_enum_none/tiramisu/base.py
index 7c3a52b96..e3e2dc135 100644
--- a/tests/dictionaries/10valid_enum_none/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_none/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', None), default="b", properties=frozenset({"expert"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", None), default="b", properties=frozenset({"expert"}))
+option_5.impl_set_information('help', "bla bla bla")
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_none/tiramisu/multi.py b/tests/dictionaries/10valid_enum_none/tiramisu/multi.py
index bcfb7836f..691f94abe 100644
--- a/tests/dictionaries/10valid_enum_none/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_none/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', None), default="b", properties=frozenset({"expert"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
-option_8 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', None), default="b", properties=frozenset({"expert"}))
-option_8.impl_set_information('help', "bla bla bla")
-optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", None), default="b", properties=frozenset({"expert"}))
+option_6.impl_set_information('help', "bla bla bla")
+optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"expert"}))
+option_12 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", None), default="b", properties=frozenset({"expert"}))
+option_12.impl_set_information('help', "bla bla bla")
+optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10valid_enum_number/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_number/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..d4d804516
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_number/dictionaries/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: enumvar
+ help: bla bla bla
+ default: 1
+ choices:
+ - 1
+ - 2
+ - 3
+version: '1.0'
diff --git a/tests/dictionaries/10valid_enum_number/tiramisu/base.py b/tests/dictionaries/10valid_enum_number/tiramisu/base.py
index 4505d9b8c..80b0ab245 100644
--- a/tests/dictionaries/10valid_enum_number/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_number/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
+option_5.impl_set_information('help', "bla bla bla")
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_number/tiramisu/multi.py b/tests/dictionaries/10valid_enum_number/tiramisu/multi.py
index 4a52c4abb..1f62e83a2 100644
--- a/tests/dictionaries/10valid_enum_number/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_number/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
-option_8 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
-option_8.impl_set_information('help', "bla bla bla")
-optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_6 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
+option_6.impl_set_information('help', "bla bla bla")
+optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"expert"}))
+option_12 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
+option_12.impl_set_information('help', "bla bla bla")
+optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10valid_enum_numberdefault/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_numberdefault/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4ebdcf8ac
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_numberdefault/dictionaries/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: enumvar
+ help: bla bla bla
+ default: 3
+ choices:
+ - 1
+ - 2
+ - 3
+version: '1.0'
diff --git a/tests/dictionaries/10valid_enum_numberdefault/tiramisu/base.py b/tests/dictionaries/10valid_enum_numberdefault/tiramisu/base.py
index c097f01c8..d8b6ba13a 100644
--- a/tests/dictionaries/10valid_enum_numberdefault/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_numberdefault/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"expert", "mandatory"}))
+option_5.impl_set_information('help', "bla bla bla")
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_numberdefault/tiramisu/multi.py b/tests/dictionaries/10valid_enum_numberdefault/tiramisu/multi.py
index 7fbfa4a36..c0a545b29 100644
--- a/tests/dictionaries/10valid_enum_numberdefault/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_numberdefault/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
-option_8 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"expert", "mandatory"}))
-option_8.impl_set_information('help', "bla bla bla")
-optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_6 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"expert", "mandatory"}))
+option_6.impl_set_information('help', "bla bla bla")
+optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"expert"}))
+option_12 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"expert", "mandatory"}))
+option_12.impl_set_information('help', "bla bla bla")
+optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10valid_enum_param_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_param_empty/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..00bdf09a7
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_param_empty/dictionaries/rougail/00-base.yml
@@ -0,0 +1,11 @@
+---
+version: '1.0'
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: null
+ choices:
+ - null
diff --git a/tests/dictionaries/10valid_enum_param_empty/tiramisu/base.py b/tests/dictionaries/10valid_enum_param_empty/tiramisu/base.py
index 76ec9b848..f7ea04128 100644
--- a/tests/dictionaries/10valid_enum_param_empty/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_param_empty/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
-option_2.impl_set_information('help', "bla bla bla")
-optiondescription_1 = OptionDescription(name="enumfam", doc="enumfam", children=[option_2], properties=frozenset({"expert"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
+option_3.impl_set_information('help', "bla bla bla")
+optiondescription_2 = OptionDescription(name="enumfam", doc="enumfam", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_param_empty/tiramisu/multi.py b/tests/dictionaries/10valid_enum_param_empty/tiramisu/multi.py
index 099d66d78..9fba4f0d0 100644
--- a/tests/dictionaries/10valid_enum_param_empty/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_param_empty/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
-option_2.impl_set_information('help', "bla bla bla")
-optiondescription_1 = OptionDescription(name="enumfam", doc="enumfam", children=[option_2], properties=frozenset({"expert"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
option_4.impl_set_information('help', "bla bla bla")
optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_8 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
+option_8.impl_set_information('help', "bla bla bla")
+optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"expert"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/10valid_enum_param_empty2/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_param_empty2/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ca08e3ffe
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_param_empty2/dictionaries/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: null
+ choices:
+ - null
+version: '1.0'
diff --git a/tests/dictionaries/10valid_enum_param_empty2/tiramisu/base.py b/tests/dictionaries/10valid_enum_param_empty2/tiramisu/base.py
index 98d2b94f9..a3edb497a 100644
--- a/tests/dictionaries/10valid_enum_param_empty2/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_param_empty2/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
+option_5.impl_set_information('help', "bla bla bla")
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_param_empty2/tiramisu/multi.py b/tests/dictionaries/10valid_enum_param_empty2/tiramisu/multi.py
index dc1d341c9..bbe32bb17 100644
--- a/tests/dictionaries/10valid_enum_param_empty2/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_param_empty2/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
-option_8 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
-option_8.impl_set_information('help', "bla bla bla")
-optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_6 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
+option_6.impl_set_information('help', "bla bla bla")
+optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"expert"}))
+option_12 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
+option_12.impl_set_information('help', "bla bla bla")
+optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10valid_enum_quote/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_quote/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ea4790639
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_quote/dictionaries/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: quote'
+ choices:
+ - quote'
+ - quote"
+ - quote"'
+version: '1.0'
diff --git a/tests/dictionaries/10valid_enum_quote/tiramisu/base.py b/tests/dictionaries/10valid_enum_quote/tiramisu/base.py
index 54d0604d9..4a9fa1e8e 100644
--- a/tests/dictionaries/10valid_enum_quote/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_quote/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", 'quote"', 'quote"\''), default="quote'", properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", "quote\"", "quote\"'"), default="quote'", properties=frozenset({"expert", "mandatory"}))
+option_5.impl_set_information('help', "bla bla bla")
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_quote/tiramisu/multi.py b/tests/dictionaries/10valid_enum_quote/tiramisu/multi.py
index e3c12baf0..7a442ea52 100644
--- a/tests/dictionaries/10valid_enum_quote/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_quote/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
-option_4 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", 'quote"', 'quote"\''), default="quote'", properties=frozenset({"expert", "mandatory"}))
-option_4.impl_set_information('help', "bla bla bla")
-optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
-option_8 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", 'quote"', 'quote"\''), default="quote'", properties=frozenset({"expert", "mandatory"}))
-option_8.impl_set_information('help', "bla bla bla")
-optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"expert"}))
+option_6 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", "quote\"", "quote\"'"), default="quote'", properties=frozenset({"expert", "mandatory"}))
+option_6.impl_set_information('help', "bla bla bla")
+optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"expert"}))
+option_12 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", "quote\"", "quote\"'"), default="quote'", properties=frozenset({"expert", "mandatory"}))
+option_12.impl_set_information('help', "bla bla bla")
+optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10valid_enum_value/dictionaries/rougail/00-base.yml b/tests/dictionaries/10valid_enum_value/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..838e7f785
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_value/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ type: choice
+ description: No change
+ default: b
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries/10valid_enum_value/tiramisu/base.py b/tests/dictionaries/10valid_enum_value/tiramisu/base.py
index 63f46edfa..bc726212c 100644
--- a/tests/dictionaries/10valid_enum_value/tiramisu/base.py
+++ b/tests/dictionaries/10valid_enum_value/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=('a', 'b', 'c'), default="b", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=("a", "b", "c"), default="b", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_value/tiramisu/multi.py b/tests/dictionaries/10valid_enum_value/tiramisu/multi.py
index 1ad4a9d05..84c7916cc 100644
--- a/tests/dictionaries/10valid_enum_value/tiramisu/multi.py
+++ b/tests/dictionaries/10valid_enum_value/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=('a', 'b', 'c'), default="b", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=('a', 'b', 'c'), default="b", properties=frozenset({"mandatory", "normal"}))
+option_4 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=("a", "b", "c"), default="b", properties=frozenset({"mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=("a", "b", "c"), default="b", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/10valid_enum_variables/dictionaries/rougail/00-base.xml b/tests/dictionaries/10valid_enum_variables/dictionaries/rougail/00-base.xml
new file mode 100644
index 000000000..43188bdc7
--- /dev/null
+++ b/tests/dictionaries/10valid_enum_variables/dictionaries/rougail/00-base.xml
@@ -0,0 +1,15 @@
+---
+version: '1.0'
+source_variable_1:
+ multi: true
+ default: val1
+source_variable_2:
+ multi: true
+ default: val2
+my_variable:
+ type: choice
+ choices:
+ - type: variable
+ variable: rougail.source_variable_1
+ - type: variable
+ variable: rougail.source_variable_2
diff --git a/tests/dictionaries/00load_autosaveexpert/__init__.py b/tests/dictionaries/11autosave_hidden_frozenifin/__init__.py
similarity index 100%
rename from tests/dictionaries/00load_autosaveexpert/__init__.py
rename to tests/dictionaries/11autosave_hidden_frozenifin/__init__.py
diff --git a/tests/dictionaries/11autosave_hidden_frozenifin/dictionaries/rougail/00-base.yml b/tests/dictionaries/11autosave_hidden_frozenifin/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f79cc117d
--- /dev/null
+++ b/tests/dictionaries/11autosave_hidden_frozenifin/dictionaries/rougail/00-base.yml
@@ -0,0 +1,24 @@
+---
+version: '1.0'
+server_deployed:
+ type: boolean
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ autosavevar:
+ type: string
+ description: autosave variable
+ auto_save: true
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.general.mode_conteneur_actif == "oui" %}
+ mode_conteneur_actif is oui
+ {% endif %}
+ default:
+ type: jinja
+ jinja: '{{ "oui" | calc_val }}'
diff --git a/tests/dictionaries/02autosave_hidden_frozenifin/makedict/after.json b/tests/dictionaries/11autosave_hidden_frozenifin/makedict/after.json
similarity index 100%
rename from tests/dictionaries/02autosave_hidden_frozenifin/makedict/after.json
rename to tests/dictionaries/11autosave_hidden_frozenifin/makedict/after.json
diff --git a/tests/dictionaries/02autosave_hidden_frozenifin/makedict/base.json b/tests/dictionaries/11autosave_hidden_frozenifin/makedict/base.json
similarity index 100%
rename from tests/dictionaries/02autosave_hidden_frozenifin/makedict/base.json
rename to tests/dictionaries/11autosave_hidden_frozenifin/makedict/base.json
diff --git a/tests/dictionaries/02autosave_hidden_frozenifin/makedict/before.json b/tests/dictionaries/11autosave_hidden_frozenifin/makedict/before.json
similarity index 100%
rename from tests/dictionaries/02autosave_hidden_frozenifin/makedict/before.json
rename to tests/dictionaries/11autosave_hidden_frozenifin/makedict/before.json
diff --git a/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/base.py b/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/base.py
new file mode 100644
index 000000000..66c50d60a
--- /dev/null
+++ b/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/base.py
@@ -0,0 +1,77 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}"
+dict_env['hidden_rougail.general.autosavevar'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n"
+dict_env['frozen_rougail.general.autosavevar'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"basic", "force_store_value", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/multi.py b/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/multi.py
new file mode 100644
index 000000000..a264bd573
--- /dev/null
+++ b/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/multi.py
@@ -0,0 +1,87 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}"
+dict_env['hidden_1.rougail.general.autosavevar'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n"
+dict_env['frozen_1.rougail.general.autosavevar'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n"
+dict_env['default_2.rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}"
+dict_env['hidden_2.rougail.general.autosavevar'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n"
+dict_env['frozen_2.rougail.general.autosavevar'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"basic", "force_store_value", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_5)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_4 = OptionDescription(name="general", doc="général", children=[option_5, option_6], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_9 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_12 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"basic", "force_store_value", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_11)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_11)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_10 = OptionDescription(name="general", doc="général", children=[option_11, option_12], properties=frozenset({"basic"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[option_9, optiondescription_10], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/02autosave_hidden_frozenifin/xml/00-base.xml b/tests/dictionaries/11autosave_hidden_frozenifin/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/02autosave_hidden_frozenifin/xml/00-base.xml
rename to tests/dictionaries/11autosave_hidden_frozenifin/xml/00-base.xml
diff --git a/tests/dictionaries/11disabled_if_in_filelist/dictionaries/rougail/00-base.yml b/tests/dictionaries/11disabled_if_in_filelist/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..20cc2833a
--- /dev/null
+++ b/tests/dictionaries/11disabled_if_in_filelist/dictionaries/rougail/00-base.yml
@@ -0,0 +1,26 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: boolean
+ description: No change
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/11disabled_if_in_filelist/makedict/after.json b/tests/dictionaries/11disabled_if_in_filelist/makedict/after.json
index f96452594..b906e5aab 100644
--- a/tests/dictionaries/11disabled_if_in_filelist/makedict/after.json
+++ b/tests/dictionaries/11disabled_if_in_filelist/makedict/after.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": true
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/11disabled_if_in_filelist/makedict/base.json b/tests/dictionaries/11disabled_if_in_filelist/makedict/base.json
index 8924b3316..05f9e2ec9 100644
--- a/tests/dictionaries/11disabled_if_in_filelist/makedict/base.json
+++ b/tests/dictionaries/11disabled_if_in_filelist/makedict/base.json
@@ -1,10 +1,5 @@
{
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
- "rougail.general.mode_conteneur_actif2": true,
- "services.test_service.files.file.name": "/etc/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.mode_conteneur_actif2": true
}
diff --git a/tests/dictionaries/11disabled_if_in_filelist/makedict/before.json b/tests/dictionaries/11disabled_if_in_filelist/makedict/before.json
index f96452594..b906e5aab 100644
--- a/tests/dictionaries/11disabled_if_in_filelist/makedict/before.json
+++ b/tests/dictionaries/11disabled_if_in_filelist/makedict/before.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": true
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/11disabled_if_in_filelist/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist/tiramisu/base.py
index 5eb0998fd..4ccbbcb40 100644
--- a/tests/dictionaries/11disabled_if_in_filelist/tiramisu/base.py
+++ b/tests/dictionaries/11disabled_if_in_filelist/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_10 = StrOption(name="source", doc="source", default="file")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11disabled_if_in_filelist/tiramisu/multi.py b/tests/dictionaries/11disabled_if_in_filelist/tiramisu/multi.py
index 1b93e13c5..9fcb0620c 100644
--- a/tests/dictionaries/11disabled_if_in_filelist/tiramisu/multi.py
+++ b/tests/dictionaries/11disabled_if_in_filelist/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_14 = StrOption(name="source", doc="source", default="file")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_8 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_21 = StrOption(name="source", doc="source", default="file")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean/dictionaries/rougail/00-base.yml b/tests/dictionaries/11disabled_if_in_filelist_boolean/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..9b10c48f8
--- /dev/null
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean/dictionaries/rougail/00-base.yml
@@ -0,0 +1,4 @@
+general:
+ condition:
+ type: boolean
+version: '1.0'
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/after.json b/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/after.json
index 69befa8d2..005f21c45 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/after.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/after.json
@@ -2,25 +2,5 @@
"rougail.general.condition": {
"owner": "default",
"value": true
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 328ee3e37..b39821627 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/base.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/base.json
@@ -1,8 +1,3 @@
{
- "rougail.general.condition": true,
- "services.test_service.files.file1.name": "/tmp/file1",
- "services.test_service.files.file1.source": "file1",
- "services.test_service.files.file1.activate": false,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.condition": true
}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/before.json b/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/before.json
index 69befa8d2..005f21c45 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/before.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/before.json
@@ -2,25 +2,5 @@
"rougail.general.condition": {
"owner": "default",
"value": true
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 684e94587..78f0b3626 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/base.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,28 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_8 = StrOption(name="source", doc="source", default="file1")
-option_6 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(True)})))
-optiondescription_5 = OptionDescription(name="file1", doc="file1", children=[option_7, option_8, option_6])
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_9 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_12 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_9])
-optiondescription_12.impl_set_information('type', "service")
-optiondescription_11 = OptionDescription(name="services", doc="services", children=[optiondescription_12], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_10, optiondescription_11])
+option_3 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/multi.py b/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/multi.py
index d6644fcf8..48df0086e 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/multi.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,43 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_10 = StrOption(name="source", doc="source", default="file1")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(True)})))
-optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_22 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_22.impl_set_information('type', "service")
-optiondescription_21 = OptionDescription(name="services", doc="services", children=[optiondescription_22], properties=frozenset({"hidden"}))
-optiondescription_19 = OptionDescription(name="1", doc="1", children=[optiondescription_20, optiondescription_21])
option_4 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-option_16 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_17 = 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_4, notraisepropertyerror=True), 'expected_0': ParamValue(True)})))
-optiondescription_14 = OptionDescription(name="file1", doc="file1", children=[option_16, option_17, option_15])
-optiondescription_13 = OptionDescription(name="files", doc="files", children=[optiondescription_14])
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_18 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_13, option_12, option_18])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="2", doc="2", children=[optiondescription_24, optiondescription_25])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_19, optiondescription_23])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean2/dictionaries/rougail/00-base.yml b/tests/dictionaries/11disabled_if_in_filelist_boolean2/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c0abf7583
--- /dev/null
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean2/dictionaries/rougail/00-base.yml
@@ -0,0 +1,5 @@
+general:
+ condition:
+ type: boolean
+ default: false
+version: '1.0'
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/after.json b/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/after.json
index 8df0f30a1..7064716c3 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/after.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/after.json
@@ -2,25 +2,5 @@
"rougail.general.condition": {
"owner": "default",
"value": false
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 9635e68a5..4c0a98f1c 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/base.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/base.json
@@ -1,8 +1,3 @@
{
- "rougail.general.condition": false,
- "services.test_service.files.file1.name": "/tmp/file1",
- "services.test_service.files.file1.source": "file1",
- "services.test_service.files.file1.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.condition": false
}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/before.json b/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/before.json
index 8df0f30a1..7064716c3 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/before.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/before.json
@@ -2,25 +2,5 @@
"rougail.general.condition": {
"owner": "default",
"value": false
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": 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 b58a776e6..9cc695997 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/base.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,28 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = BoolOption(name="condition", doc="condition", default=False, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_8 = StrOption(name="source", doc="source", default="file1")
-option_6 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(True)})))
-optiondescription_5 = OptionDescription(name="file1", doc="file1", children=[option_7, option_8, option_6])
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_9 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_12 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_9])
-optiondescription_12.impl_set_information('type', "service")
-optiondescription_11 = OptionDescription(name="services", doc="services", children=[optiondescription_12], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_10, optiondescription_11])
+option_3 = BoolOption(name="condition", doc="condition", default=False, properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/multi.py b/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/multi.py
index de38d9f2f..06e5720bd 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/multi.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,43 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = BoolOption(name="condition", doc="condition", default=False, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_10 = StrOption(name="source", doc="source", default="file1")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(True)})))
-optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_22 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_22.impl_set_information('type', "service")
-optiondescription_21 = OptionDescription(name="services", doc="services", children=[optiondescription_22], properties=frozenset({"hidden"}))
-optiondescription_19 = OptionDescription(name="1", doc="1", children=[optiondescription_20, optiondescription_21])
option_4 = BoolOption(name="condition", doc="condition", default=False, properties=frozenset({"mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-option_16 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_17 = 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_4, notraisepropertyerror=True), 'expected_0': ParamValue(True)})))
-optiondescription_14 = OptionDescription(name="file1", doc="file1", children=[option_16, option_17, option_15])
-optiondescription_13 = OptionDescription(name="files", doc="files", children=[optiondescription_14])
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_18 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_13, option_12, option_18])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="2", doc="2", children=[optiondescription_24, optiondescription_25])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_19, optiondescription_23])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = BoolOption(name="condition", doc="condition", default=False, properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/11disabled_if_in_filelist_disabled/dictionaries/rougail/00-base.yml b/tests/dictionaries/11disabled_if_in_filelist_disabled/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c2f39fe34
--- /dev/null
+++ b/tests/dictionaries/11disabled_if_in_filelist_disabled/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: oui
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/after.json b/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/after.json
index 221ca49f3..84fd776c0 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/after.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/after.json
@@ -2,25 +2,5 @@
"rougail.general.condition": {
"owner": "default",
"value": "oui"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 e2b8adeae..0af6817e3 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/base.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/base.json
@@ -1,8 +1,3 @@
{
- "rougail.general.condition": "oui",
- "services.test_service.files.file.name": "/etc/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": false,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.condition": "oui"
}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/before.json b/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/before.json
index 221ca49f3..84fd776c0 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/before.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/before.json
@@ -2,25 +2,5 @@
"rougail.general.condition": {
"owner": "default",
"value": "oui"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 5c4c83c2f..56a95b0c2 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/base.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_10 = StrOption(name="source", doc="source", default="file")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/multi.py b/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/multi.py
index 1d686ede8..2c824e326 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/multi.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_14 = StrOption(name="source", doc="source", default="file")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_21 = StrOption(name="source", doc="source", default="file")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/11disabled_if_in_filelist_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/11disabled_if_in_filelist_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..378abf66d
--- /dev/null
+++ b/tests/dictionaries/11disabled_if_in_filelist_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/after.json b/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/after.json
index bc8625abf..f51f52300 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/after.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/after.json
@@ -10,37 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": "non"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.file2.name": {
- "owner": "default",
- "value": "/tmp/file2"
- },
- "services.test_service.files.file2.source": {
- "owner": "default",
- "value": "file2"
- },
- "services.test_service.files.file2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
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 97f44b587..c6e0314ef 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/base.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/base.json
@@ -1,13 +1,5 @@
{
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
- "rougail.general.mode_conteneur_actif2": "non",
- "services.test_service.files.file1.name": "/tmp/file1",
- "services.test_service.files.file1.source": "file1",
- "services.test_service.files.file1.activate": true,
- "services.test_service.files.file2.name": "/tmp/file2",
- "services.test_service.files.file2.source": "file2",
- "services.test_service.files.file2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.mode_conteneur_actif2": "non"
}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/before.json b/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/before.json
index bc8625abf..f51f52300 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/before.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/before.json
@@ -10,37 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": "non"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.file2.name": {
- "owner": "default",
- "value": "/tmp/file2"
- },
- "services.test_service.files.file2.source": {
- "owner": "default",
- "value": "file2"
- },
- "services.test_service.files.file2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": 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 6e04463b3..76b587858 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/base.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,34 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_10 = StrOption(name="source", doc="source", default="file1")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_8])
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file2")
-option_14 = StrOption(name="source", doc="source", default="file2")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_11 = OptionDescription(name="file2", doc="file2", children=[option_13, option_14, option_12])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_18 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_15])
-optiondescription_18.impl_set_information('type', "service")
-optiondescription_17 = OptionDescription(name="services", doc="services", children=[optiondescription_18], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_16, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/multi.py b/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/multi.py
index 91dbf827f..8ceff7dca 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/multi.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,55 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_32 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="source", doc="source", default="file1")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
-option_17 = FilenameOption(name="name", doc="name", default="/tmp/file2")
-option_18 = StrOption(name="source", doc="source", default="file2")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_15 = OptionDescription(name="file2", doc="file2", children=[option_17, option_18, option_16])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11, optiondescription_15])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_19 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_34 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_19])
-optiondescription_34.impl_set_information('type', "service")
-optiondescription_33 = OptionDescription(name="services", doc="services", children=[optiondescription_34], properties=frozenset({"hidden"}))
-optiondescription_31 = OptionDescription(name="1", doc="1", children=[optiondescription_32, optiondescription_33])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_36 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_24 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_25 = StrOption(name="source", doc="source", default="file1")
-option_23 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_22 = OptionDescription(name="file1", doc="file1", children=[option_24, option_25, option_23])
-option_28 = FilenameOption(name="name", doc="name", default="/tmp/file2")
-option_29 = StrOption(name="source", doc="source", default="file2")
-option_27 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_26 = OptionDescription(name="file2", doc="file2", children=[option_28, option_29, option_27])
-optiondescription_21 = OptionDescription(name="files", doc="files", children=[optiondescription_22, optiondescription_26])
-option_20 = BoolOption(name="activate", doc="activate", default=True)
-option_30 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_38 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_21, option_20, option_30])
-optiondescription_38.impl_set_information('type', "service")
-optiondescription_37 = OptionDescription(name="services", doc="services", children=[optiondescription_38], properties=frozenset({"hidden"}))
-optiondescription_35 = OptionDescription(name="2", doc="2", children=[optiondescription_36, optiondescription_37])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_31, optiondescription_35])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/11disabled_if_in_filelist_same_name/dictionaries/rougail/00-base.yml b/tests/dictionaries/11disabled_if_in_filelist_same_name/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..20cc2833a
--- /dev/null
+++ b/tests/dictionaries/11disabled_if_in_filelist_same_name/dictionaries/rougail/00-base.yml
@@ -0,0 +1,26 @@
+---
+version: '1.0'
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: boolean
+ description: No change
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_same_name/makedict/after.json b/tests/dictionaries/11disabled_if_in_filelist_same_name/makedict/after.json
index f96452594..b906e5aab 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_same_name/makedict/after.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_same_name/makedict/after.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": true
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_same_name/makedict/base.json b/tests/dictionaries/11disabled_if_in_filelist_same_name/makedict/base.json
index 8924b3316..05f9e2ec9 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_same_name/makedict/base.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_same_name/makedict/base.json
@@ -1,10 +1,5 @@
{
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
- "rougail.general.mode_conteneur_actif2": true,
- "services.test_service.files.file.name": "/etc/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.mode_conteneur_actif2": true
}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_same_name/makedict/before.json b/tests/dictionaries/11disabled_if_in_filelist_same_name/makedict/before.json
index f96452594..b906e5aab 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_same_name/makedict/before.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_same_name/makedict/before.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": true
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/base.py
index 5eb0998fd..4ccbbcb40 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/base.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_10 = StrOption(name="source", doc="source", default="file")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+option_5 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/multi.py b/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/multi.py
index 1b93e13c5..9fcb0620c 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/multi.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_4 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_14 = StrOption(name="source", doc="source", default="file")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_8 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_21 = StrOption(name="source", doc="source", default="file")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+option_12 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/11disabledifin_filelist_notexist/dictionaries/rougail/00-base.yml b/tests/dictionaries/11disabledifin_filelist_notexist/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0702f5f71
--- /dev/null
+++ b/tests/dictionaries/11disabledifin_filelist_notexist/dictionaries/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/11disabledifin_filelist_notexist/makedict/after.json b/tests/dictionaries/11disabledifin_filelist_notexist/makedict/after.json
index ae1ef20d9..f51f52300 100644
--- a/tests/dictionaries/11disabledifin_filelist_notexist/makedict/after.json
+++ b/tests/dictionaries/11disabledifin_filelist_notexist/makedict/after.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/tmp/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/11disabledifin_filelist_notexist/makedict/base.json b/tests/dictionaries/11disabledifin_filelist_notexist/makedict/base.json
index 1a6e1a8bd..c6e0314ef 100644
--- a/tests/dictionaries/11disabledifin_filelist_notexist/makedict/base.json
+++ b/tests/dictionaries/11disabledifin_filelist_notexist/makedict/base.json
@@ -1,10 +1,5 @@
{
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
- "rougail.general.mode_conteneur_actif2": "non",
- "services.test_service.files.file.name": "/tmp/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": false,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.mode_conteneur_actif2": "non"
}
diff --git a/tests/dictionaries/11disabledifin_filelist_notexist/makedict/before.json b/tests/dictionaries/11disabledifin_filelist_notexist/makedict/before.json
index ae1ef20d9..f51f52300 100644
--- a/tests/dictionaries/11disabledifin_filelist_notexist/makedict/before.json
+++ b/tests/dictionaries/11disabledifin_filelist_notexist/makedict/before.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/tmp/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py b/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py
index 7192be2f3..0805e9d39 100644
--- a/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py
+++ b/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,11 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_10 = StrOption(name="source", doc="source", default="file")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
-optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/multi.py b/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/multi.py
index a29c14de5..dc203d5ec 100644
--- a/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/multi.py
+++ b/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,18 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_14 = StrOption(name="source", doc="source", default="file")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
-optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_21 = StrOption(name="source", doc="source", default="file")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
-optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist/dictionaries/rougail/00-base.yml b/tests/dictionaries/11disabledifnotin_filelist_notexist/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0702f5f71
--- /dev/null
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist/dictionaries/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/after.json b/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/after.json
index ae1ef20d9..f51f52300 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/after.json
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/after.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/tmp/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/base.json b/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/base.json
index 1a6e1a8bd..c6e0314ef 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/base.json
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/base.json
@@ -1,10 +1,5 @@
{
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
- "rougail.general.mode_conteneur_actif2": "non",
- "services.test_service.files.file.name": "/tmp/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": false,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.mode_conteneur_actif2": "non"
}
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/before.json b/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/before.json
index ae1ef20d9..f51f52300 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/before.json
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/before.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/tmp/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py b/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py
index 7192be2f3..0805e9d39 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,11 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_10 = StrOption(name="source", doc="source", default="file")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
-optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/multi.py b/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/multi.py
index a29c14de5..dc203d5ec 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/multi.py
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,18 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_14 = StrOption(name="source", doc="source", default="file")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
-optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_21 = StrOption(name="source", doc="source", default="file")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
-optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0702f5f71
--- /dev/null
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/after.json b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/after.json
index ae1ef20d9..f51f52300 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/after.json
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/after.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/tmp/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/base.json b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/base.json
index 1a6e1a8bd..c6e0314ef 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/base.json
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/base.json
@@ -1,10 +1,5 @@
{
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
- "rougail.general.mode_conteneur_actif2": "non",
- "services.test_service.files.file.name": "/tmp/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": false,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.mode_conteneur_actif2": "non"
}
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/before.json b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/before.json
index ae1ef20d9..f51f52300 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/before.json
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/before.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/tmp/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py
index 9f0b6b40b..0805e9d39 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,11 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_10 = StrOption(name="source", doc="source", default="file")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True), 'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'expected_1': ParamValue("oui"), 'reverse_condition_1': ParamValue(True), 'condition_operator': ParamValue("OR")})))
-optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/multi.py b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/multi.py
index c5537d8f7..dc203d5ec 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/multi.py
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,18 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_14 = StrOption(name="source", doc="source", default="file")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True), 'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'expected_1': ParamValue("oui"), 'reverse_condition_1': ParamValue(True), 'condition_operator': ParamValue("OR")})))
-optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_21 = StrOption(name="source", doc="source", default="file")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True), 'condition_1': ParamOption(option_8, notraisepropertyerror=True), 'expected_1': ParamValue("oui"), 'reverse_condition_1': ParamValue(True), 'condition_operator': ParamValue("OR")})))
-optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/dictionaries/rougail/00-base.yml b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..d4635ae31
--- /dev/null
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/dictionaries/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ condition:
+ type: choice
+ description: No change
+ default: non
+ choices:
+ - non
+ - statique
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/after.json b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/after.json
index ae1ef20d9..f51f52300 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/after.json
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/after.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/tmp/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/base.json b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/base.json
index 1a6e1a8bd..c6e0314ef 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/base.json
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/base.json
@@ -1,10 +1,5 @@
{
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
- "rougail.general.mode_conteneur_actif2": "non",
- "services.test_service.files.file.name": "/tmp/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": false,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "rougail.general.mode_conteneur_actif2": "non"
}
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/before.json b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/before.json
index ae1ef20d9..f51f52300 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/before.json
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/before.json
@@ -10,25 +10,5 @@
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/tmp/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py
index f1f349fa7..386526e87 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,11 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('non', 'statique'), default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_10 = StrOption(name="source", doc="source", default="file")
-option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("statique"), 'reverse_condition_0': ParamValue(True)})))
-optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
+option_3 = ChoiceOption(name="condition", doc="No change", values=("non", "statique"), default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/multi.py b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/multi.py
index 7a91f5897..1c9c52fbf 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/multi.py
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,47 +17,18 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="condition", doc="No change", values=('non', 'statique'), default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_14 = StrOption(name="source", doc="source", default="file")
-option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("statique"), 'reverse_condition_0': ParamValue(True)})))
-optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
-optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
-optiondescription_26.impl_set_information('type', "service")
-optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
-optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
-option_6 = ChoiceOption(name="condition", doc="No change", values=('non', 'statique'), default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_20 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_21 = StrOption(name="source", doc="source", default="file")
-option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("statique"), 'reverse_condition_0': ParamValue(True)})))
-optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
-optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_22 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
-optiondescription_30.impl_set_information('type', "service")
-optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
-optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
+option_4 = ChoiceOption(name="condition", doc="No change", values=("non", "statique"), default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = ChoiceOption(name="condition", doc="No change", values=("non", "statique"), default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/00load_comment/__init__.py b/tests/dictionaries/11fill_multi_calc_val/__init__.py
similarity index 100%
rename from tests/dictionaries/00load_comment/__init__.py
rename to tests/dictionaries/11fill_multi_calc_val/__init__.py
diff --git a/tests/dictionaries/11fill_multi_calc_val/dictionaries/rougail/00-base.yml b/tests/dictionaries/11fill_multi_calc_val/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4f6069d11
--- /dev/null
+++ b/tests/dictionaries/11fill_multi_calc_val/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+---
+version: '1.0'
+var1:
+ default: 'no'
+var2:
+ multi: true
+ default:
+ type: jinja
+ jinja: |
+ {% for val in calc_value(rougail.var1, multi=true) %}
+ {{ val }}
+ {% endfor %}
diff --git a/tests/dictionaries/02fill_multi_calc_val/makedict/after.json b/tests/dictionaries/11fill_multi_calc_val/makedict/after.json
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val/makedict/after.json
rename to tests/dictionaries/11fill_multi_calc_val/makedict/after.json
diff --git a/tests/dictionaries/02fill_multi_calc_val/makedict/base.json b/tests/dictionaries/11fill_multi_calc_val/makedict/base.json
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val/makedict/base.json
rename to tests/dictionaries/11fill_multi_calc_val/makedict/base.json
diff --git a/tests/dictionaries/02fill_multi_calc_val/makedict/before.json b/tests/dictionaries/11fill_multi_calc_val/makedict/before.json
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val/makedict/before.json
rename to tests/dictionaries/11fill_multi_calc_val/makedict/before.json
diff --git a/tests/dictionaries/11fill_multi_calc_val/tiramisu/base.py b/tests/dictionaries/11fill_multi_calc_val/tiramisu/base.py
new file mode 100644
index 000000000..36d26ce02
--- /dev/null
+++ b/tests/dictionaries/11fill_multi_calc_val/tiramisu/base.py
@@ -0,0 +1,73 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.var2'] = "{% for val in calc_value(rougail.var1, multi=true) %}\n{{ val }}\n{% endfor %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_2 = StrOption(name="var1", doc="var1", default="no", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.var1': ParamOption(option_2)})), properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11fill_multi_calc_val/tiramisu/multi.py b/tests/dictionaries/11fill_multi_calc_val/tiramisu/multi.py
new file mode 100644
index 000000000..f2052b1d2
--- /dev/null
+++ b/tests/dictionaries/11fill_multi_calc_val/tiramisu/multi.py
@@ -0,0 +1,79 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.var2'] = "{% for val in calc_value(rougail.var1, multi=true) %}\n{{ val }}\n{% endfor %}\n"
+dict_env['default_2.rougail.var2'] = "{% for val in calc_value(rougail.var1, multi=true) %}\n{{ val }}\n{% endfor %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="var1", doc="var1", default="no", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.var1': ParamOption(option_3)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="var1", doc="var1", default="no", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.var1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/02fill_multi_calc_val/xml/00-base.xml b/tests/dictionaries/11fill_multi_calc_val/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val/xml/00-base.xml
rename to tests/dictionaries/11fill_multi_calc_val/xml/00-base.xml
diff --git a/tests/dictionaries/01auto_autofreeze/__init__.py b/tests/dictionaries/11fill_multi_calc_val_multi/__init__.py
similarity index 100%
rename from tests/dictionaries/01auto_autofreeze/__init__.py
rename to tests/dictionaries/11fill_multi_calc_val_multi/__init__.py
diff --git a/tests/dictionaries/11fill_multi_calc_val_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/11fill_multi_calc_val_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..000b26da3
--- /dev/null
+++ b/tests/dictionaries/11fill_multi_calc_val_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,15 @@
+var1:
+ multi: true
+ default:
+ - 'no'
+ - 'yes'
+ - maybe
+var2:
+ multi: true
+ default:
+ type: jinja
+ jinja: |
+ {% for val in calc_value(rougail.var1) %}
+ {{ val }}
+ {% endfor %}
+version: '1.0'
diff --git a/tests/dictionaries/02fill_multi_calc_val_multi/makedict/after.json b/tests/dictionaries/11fill_multi_calc_val_multi/makedict/after.json
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val_multi/makedict/after.json
rename to tests/dictionaries/11fill_multi_calc_val_multi/makedict/after.json
diff --git a/tests/dictionaries/02fill_multi_calc_val_multi/makedict/base.json b/tests/dictionaries/11fill_multi_calc_val_multi/makedict/base.json
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val_multi/makedict/base.json
rename to tests/dictionaries/11fill_multi_calc_val_multi/makedict/base.json
diff --git a/tests/dictionaries/02fill_multi_calc_val_multi/makedict/before.json b/tests/dictionaries/11fill_multi_calc_val_multi/makedict/before.json
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val_multi/makedict/before.json
rename to tests/dictionaries/11fill_multi_calc_val_multi/makedict/before.json
diff --git a/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/base.py b/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/base.py
new file mode 100644
index 000000000..a834ef8c6
--- /dev/null
+++ b/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/base.py
@@ -0,0 +1,73 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.var2'] = "{% for val in calc_value(rougail.var1) %}\n{{ val }}\n{% endfor %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_2 = StrOption(name="var1", doc="var1", multi=True, default=['no', 'yes', 'maybe'], default_multi="no", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_3 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.var1': ParamOption(option_2)})), properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/multi.py b/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/multi.py
new file mode 100644
index 000000000..4df706534
--- /dev/null
+++ b/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/multi.py
@@ -0,0 +1,79 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.var2'] = "{% for val in calc_value(rougail.var1) %}\n{{ val }}\n{% endfor %}\n"
+dict_env['default_2.rougail.var2'] = "{% for val in calc_value(rougail.var1) %}\n{{ val }}\n{% endfor %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="var1", doc="var1", multi=True, default=['no', 'yes', 'maybe'], default_multi="no", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_4 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.var1': ParamOption(option_3)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="var1", doc="var1", multi=True, default=['no', 'yes', 'maybe'], default_multi="no", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_8 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.var1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/02fill_multi_calc_val_multi/xml/00-base.xml b/tests/dictionaries/11fill_multi_calc_val_multi/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val_multi/xml/00-base.xml
rename to tests/dictionaries/11fill_multi_calc_val_multi/xml/00-base.xml
diff --git a/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/after.json b/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/after.json
deleted file mode 100644
index bcd6b56d5..000000000
--- a/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/after.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.condition": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/base.json b/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/base.json
deleted file mode 100644
index 7dd7f60d0..000000000
--- a/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/base.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "rougail.general.condition": "non",
- "services.test_service.files.file1.name": "/tmp/file1",
- "services.test_service.files.file1.source": "file1",
- "services.test_service.files.file1.activate": false,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/before.json b/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/before.json
deleted file mode 100644
index bcd6b56d5..000000000
--- a/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/before.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.condition": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file1.name": {
- "owner": "default",
- "value": "/tmp/file1"
- },
- "services.test_service.files.file1.source": {
- "owner": "default",
- "value": "file1"
- },
- "services.test_service.files.file1.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/11multi_disabled_if_in_filelist/tiramisu/base.py b/tests/dictionaries/11multi_disabled_if_in_filelist/tiramisu/base.py
deleted file mode 100644
index 9f4164b6e..000000000
--- a/tests/dictionaries/11multi_disabled_if_in_filelist/tiramisu/base.py
+++ /dev/null
@@ -1,40 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_8 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_9 = StrOption(name="source", doc="source", default="file1")
-option_7 = BoolOption(name="activate", doc="activate", default=False)
-optiondescription_6 = OptionDescription(name="file1", doc="file1", children=[option_8, option_9, option_7])
-optiondescription_5 = OptionDescription(name="files", doc="files", children=[optiondescription_6])
-option_4 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_13 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_5, option_4, option_10])
-optiondescription_13.impl_set_information('type', "service")
-optiondescription_12 = OptionDescription(name="services", doc="services", children=[optiondescription_13], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_12])
diff --git a/tests/dictionaries/11valid_enum_function/dictionaries/rougail/00-base.yml b/tests/dictionaries/11valid_enum_function/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..9a65364fe
--- /dev/null
+++ b/tests/dictionaries/11valid_enum_function/dictionaries/rougail/00-base.yml
@@ -0,0 +1,14 @@
+---
+version: '1.0'
+general:
+ var:
+ type: choice
+ description: New variable
+ default: 9
+ choices:
+ type: jinja
+ return_type: 'number'
+ jinja: |
+ {% for n in trange(0, 10) %}
+ {{ n }}
+ {% endfor %}
diff --git a/tests/dictionaries/11valid_enum_function/tiramisu/base.py b/tests/dictionaries/11valid_enum_function/tiramisu/base.py
index 29fbcabec..b20c71596 100644
--- a/tests/dictionaries/11valid_enum_function/tiramisu/base.py
+++ b/tests/dictionaries/11valid_enum_function/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,57 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="var", doc="New variable", values=Calculation(func.trange, Params((ParamValue(0), ParamValue(10)))), default=9, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['choices_rougail.general.var'] = "{% for n in trange(0, 10) %}\n{{ n }}\n{% endfor %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = ChoiceOption(name="var", doc="New variable", values=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("choices_rougail.general.var"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(True)})), default=9, properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11valid_enum_function/tiramisu/multi.py b/tests/dictionaries/11valid_enum_function/tiramisu/multi.py
index babe7634a..be6c4be5f 100644
--- a/tests/dictionaries/11valid_enum_function/tiramisu/multi.py
+++ b/tests/dictionaries/11valid_enum_function/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="var", doc="New variable", values=Calculation(func.trange, Params((ParamValue(0), ParamValue(10)))), default=9, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = ChoiceOption(name="var", doc="New variable", values=Calculation(func.trange, Params((ParamValue(0), ParamValue(10)))), default=9, properties=frozenset({"mandatory", "normal"}))
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['choices_1.rougail.general.var'] = "{% for n in trange(0, 10) %}\n{{ n }}\n{% endfor %}\n"
+dict_env['choices_2.rougail.general.var'] = "{% for n in trange(0, 10) %}\n{{ n }}\n{% endfor %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = ChoiceOption(name="var", doc="New variable", values=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("choices_1.rougail.general.var"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(True)})), default=9, properties=frozenset({"mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = ChoiceOption(name="var", doc="New variable", values=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("choices_2.rougail.general.var"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(True)})), default=9, properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/11valid_enum_variable/dictionaries/rougail/00-base.yml b/tests/dictionaries/11valid_enum_variable/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..3637e2455
--- /dev/null
+++ b/tests/dictionaries/11valid_enum_variable/dictionaries/rougail/00-base.yml
@@ -0,0 +1,18 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: choice
+ description: No change
+ default: a
+ choices:
+ type: variable
+ variable: rougail.general.var
+ var:
+ type: string
+ description: New variable
+ multi: true
+ default:
+ - a
+ - b
+ - c
diff --git a/tests/dictionaries/11valid_enum_variable/tiramisu/base.py b/tests/dictionaries/11valid_enum_variable/tiramisu/base.py
index 83c8b92e0..c18f5dedc 100644
--- a/tests/dictionaries/11valid_enum_variable/tiramisu/base.py
+++ b/tests/dictionaries/11valid_enum_variable/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,57 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-option_2 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func.calc_value, Params((ParamOption(option_3)))), default="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_3 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func['calc_value'], Params((ParamOption(option_4)), kwargs={'multi': ParamValue(False), 'allow_none': ParamValue(True)})), default="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/11valid_enum_variable/tiramisu/multi.py b/tests/dictionaries/11valid_enum_variable/tiramisu/multi.py
index f375bb3e9..5e45efad6 100644
--- a/tests/dictionaries/11valid_enum_variable/tiramisu/multi.py
+++ b/tests/dictionaries/11valid_enum_variable/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-option_2 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func.calc_value, Params((ParamOption(option_3)))), default="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_6 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-option_5 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func.calc_value, Params((ParamOption(option_6)))), default="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_5 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_4 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func['calc_value'], Params((ParamOption(option_5)), kwargs={'multi': ParamValue(False), 'allow_none': ParamValue(True)})), default="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_9 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func['calc_value'], Params((ParamOption(option_10)), kwargs={'multi': ParamValue(False), 'allow_none': ParamValue(True)})), default="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01auto_base/__init__.py b/tests/dictionaries/12auto_base/__init__.py
similarity index 100%
rename from tests/dictionaries/01auto_base/__init__.py
rename to tests/dictionaries/12auto_base/__init__.py
diff --git a/tests/dictionaries/12auto_base/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_base/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..011db2f68
--- /dev/null
+++ b/tests/dictionaries/12auto_base/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01auto_jinja_base/makedict/after.json b/tests/dictionaries/12auto_base/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_base/makedict/after.json
rename to tests/dictionaries/12auto_base/makedict/after.json
diff --git a/tests/dictionaries/01auto_jinja_base/makedict/base.json b/tests/dictionaries/12auto_base/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_base/makedict/base.json
rename to tests/dictionaries/12auto_base/makedict/base.json
diff --git a/tests/dictionaries/01auto_jinja_base/makedict/before.json b/tests/dictionaries/12auto_base/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_base/makedict/before.json
rename to tests/dictionaries/12auto_base/makedict/before.json
diff --git a/tests/dictionaries/12auto_base/tiramisu/base.py b/tests/dictionaries/12auto_base/tiramisu/base.py
new file mode 100644
index 000000000..dc6b2a442
--- /dev/null
+++ b/tests/dictionaries/12auto_base/tiramisu/base.py
@@ -0,0 +1,74 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/12auto_base/tiramisu/multi.py b/tests/dictionaries/12auto_base/tiramisu/multi.py
new file mode 100644
index 000000000..28b5dbb47
--- /dev/null
+++ b/tests/dictionaries/12auto_base/tiramisu/multi.py
@@ -0,0 +1,81 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_10)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01auto_jinja_base/__init__.py b/tests/dictionaries/12auto_func_variable/__init__.py
similarity index 100%
rename from tests/dictionaries/01auto_jinja_base/__init__.py
rename to tests/dictionaries/12auto_func_variable/__init__.py
diff --git a/tests/dictionaries/12auto_func_variable/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_func_variable/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..6226adb96
--- /dev/null
+++ b/tests/dictionaries/12auto_func_variable/dictionaries/rougail/00-base.yml
@@ -0,0 +1,14 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: variable
+ variable: rougail.general.mode_conteneur_actif1
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
diff --git a/tests/dictionaries/01auto_jinja_full_path/makedict/after.json b/tests/dictionaries/12auto_func_variable/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_full_path/makedict/after.json
rename to tests/dictionaries/12auto_func_variable/makedict/after.json
diff --git a/tests/dictionaries/01auto_jinja_full_path/makedict/base.json b/tests/dictionaries/12auto_func_variable/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_full_path/makedict/base.json
rename to tests/dictionaries/12auto_func_variable/makedict/base.json
diff --git a/tests/dictionaries/01auto_jinja_full_path/makedict/before.json b/tests/dictionaries/12auto_func_variable/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_full_path/makedict/before.json
rename to tests/dictionaries/12auto_func_variable/makedict/before.json
diff --git a/tests/dictionaries/12auto_func_variable/tiramisu/base.py b/tests/dictionaries/12auto_func_variable/tiramisu/base.py
new file mode 100644
index 000000000..f0200e0a1
--- /dev/null
+++ b/tests/dictionaries/12auto_func_variable/tiramisu/base.py
@@ -0,0 +1,73 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['calc_value'], Params((ParamOption(option_4)), kwargs={'multi': ParamValue(False), 'allow_none': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/12auto_func_variable/tiramisu/multi.py b/tests/dictionaries/12auto_func_variable/tiramisu/multi.py
new file mode 100644
index 000000000..5500846e0
--- /dev/null
+++ b/tests/dictionaries/12auto_func_variable/tiramisu/multi.py
@@ -0,0 +1,79 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['calc_value'], Params((ParamOption(option_5)), kwargs={'multi': ParamValue(False), 'allow_none': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['calc_value'], Params((ParamOption(option_10)), kwargs={'multi': ParamValue(False), 'allow_none': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01auto_jinja_full_path/__init__.py b/tests/dictionaries/12auto_jinja_base/__init__.py
similarity index 100%
rename from tests/dictionaries/01auto_jinja_full_path/__init__.py
rename to tests/dictionaries/12auto_jinja_base/__init__.py
diff --git a/tests/dictionaries/12auto_jinja_base/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_jinja_base/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..e89682f7f
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_base/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01fill_base/makedict/after.json b/tests/dictionaries/12auto_jinja_base/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01fill_base/makedict/after.json
rename to tests/dictionaries/12auto_jinja_base/makedict/after.json
diff --git a/tests/dictionaries/01fill_base/makedict/base.json b/tests/dictionaries/12auto_jinja_base/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01fill_base/makedict/base.json
rename to tests/dictionaries/12auto_jinja_base/makedict/base.json
diff --git a/tests/dictionaries/01fill_base/makedict/before.json b/tests/dictionaries/12auto_jinja_base/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01fill_base/makedict/before.json
rename to tests/dictionaries/12auto_jinja_base/makedict/before.json
diff --git a/tests/dictionaries/12auto_jinja_base/tiramisu/base.py b/tests/dictionaries/12auto_jinja_base/tiramisu/base.py
new file mode 100644
index 000000000..4d7d900fd
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_base/tiramisu/base.py
@@ -0,0 +1,74 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/12auto_jinja_base/tiramisu/multi.py b/tests/dictionaries/12auto_jinja_base/tiramisu/multi.py
new file mode 100644
index 000000000..f5c52c917
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_base/tiramisu/multi.py
@@ -0,0 +1,81 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_10)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01auto_jinja_base/xml/00-base.xml b/tests/dictionaries/12auto_jinja_base/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01auto_jinja_base/xml/00-base.xml
rename to tests/dictionaries/12auto_jinja_base/xml/00-base.xml
diff --git a/tests/dictionaries/01auto_jinja_if/__init__.py b/tests/dictionaries/12auto_jinja_if/__init__.py
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if/__init__.py
rename to tests/dictionaries/12auto_jinja_if/__init__.py
diff --git a/tests/dictionaries/12auto_jinja_if/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_jinja_if/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1d379e090
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_if/dictionaries/rougail/00-base.yml
@@ -0,0 +1,20 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{% if rougail.general.mode_conteneur_actif1 == ''non'' %}non{% else %}oui{% endif %}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{% if rougail.general.mode_conteneur_actif1 == "non" %}oui{% else %}non{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries/01auto_jinja_if/makedict/after.json b/tests/dictionaries/12auto_jinja_if/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if/makedict/after.json
rename to tests/dictionaries/12auto_jinja_if/makedict/after.json
diff --git a/tests/dictionaries/01auto_jinja_if/makedict/base.json b/tests/dictionaries/12auto_jinja_if/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if/makedict/base.json
rename to tests/dictionaries/12auto_jinja_if/makedict/base.json
diff --git a/tests/dictionaries/01auto_jinja_if/makedict/before.json b/tests/dictionaries/12auto_jinja_if/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if/makedict/before.json
rename to tests/dictionaries/12auto_jinja_if/makedict/before.json
diff --git a/tests/dictionaries/12auto_jinja_if/tiramisu/base.py b/tests/dictionaries/12auto_jinja_if/tiramisu/base.py
new file mode 100644
index 000000000..e48497d3c
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_if/tiramisu/base.py
@@ -0,0 +1,76 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif1 == 'non' %}non{% else %}oui{% endif %}"
+dict_env['default_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.mode_conteneur_actif1 == \"non\" %}oui{% else %}non{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/12auto_jinja_if/tiramisu/multi.py b/tests/dictionaries/12auto_jinja_if/tiramisu/multi.py
new file mode 100644
index 000000000..5bd074411
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_if/tiramisu/multi.py
@@ -0,0 +1,85 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif1 == 'non' %}non{% else %}oui{% endif %}"
+dict_env['default_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.mode_conteneur_actif1 == \"non\" %}oui{% else %}non{% endif %}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif1 == 'non' %}non{% else %}oui{% endif %}"
+dict_env['default_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.mode_conteneur_actif1 == \"non\" %}oui{% else %}non{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_11)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_11)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/01auto_jinja_if/xml/00-base.xml b/tests/dictionaries/12auto_jinja_if/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if/xml/00-base.xml
rename to tests/dictionaries/12auto_jinja_if/xml/00-base.xml
diff --git a/tests/dictionaries/01auto_jinja_if/yml/00-base.yml b/tests/dictionaries/12auto_jinja_if/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if/yml/00-base.yml
rename to tests/dictionaries/12auto_jinja_if/yml/00-base.yml
diff --git a/tests/dictionaries/01auto_jinja_if_bool/__init__.py b/tests/dictionaries/12auto_jinja_if_bool/__init__.py
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_bool/__init__.py
rename to tests/dictionaries/12auto_jinja_if_bool/__init__.py
diff --git a/tests/dictionaries/12auto_jinja_if_bool/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_jinja_if_bool/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..359e22a3f
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_if_bool/dictionaries/rougail/00-base.yml
@@ -0,0 +1,29 @@
+---
+version: '1.0'
+general:
+ bool:
+ type: boolean
+ multi1:
+ type: boolean
+ multi: true
+ default:
+ type: jinja
+ jinja: |+
+ {% if rougail.general.bool %}
+ True
+ False
+ {% else %}
+ False
+ {% endif %}
+ multi2:
+ type: boolean
+ multi: true
+ default:
+ type: jinja
+ jinja: |+
+ {% if not rougail.general.bool %}
+ True
+ False
+ {% else %}
+ False
+ {% endif %}
diff --git a/tests/dictionaries/01auto_jinja_if_bool/makedict/after.json b/tests/dictionaries/12auto_jinja_if_bool/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_bool/makedict/after.json
rename to tests/dictionaries/12auto_jinja_if_bool/makedict/after.json
diff --git a/tests/dictionaries/01auto_jinja_if_bool/makedict/base.json b/tests/dictionaries/12auto_jinja_if_bool/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_bool/makedict/base.json
rename to tests/dictionaries/12auto_jinja_if_bool/makedict/base.json
diff --git a/tests/dictionaries/01auto_jinja_if_bool/makedict/before.json b/tests/dictionaries/12auto_jinja_if_bool/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_bool/makedict/before.json
rename to tests/dictionaries/12auto_jinja_if_bool/makedict/before.json
diff --git a/tests/dictionaries/12auto_jinja_if_bool/tiramisu/base.py b/tests/dictionaries/12auto_jinja_if_bool/tiramisu/base.py
new file mode 100644
index 000000000..2d8dbdb35
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_if_bool/tiramisu/base.py
@@ -0,0 +1,76 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.multi1'] = "{% if rougail.general.bool %}\nTrue\nFalse\n{% else %}\nFalse\n{% endif %}\n"
+dict_env['default_rougail.general.multi2'] = "{% if not rougail.general.bool %}\nTrue\nFalse\n{% else %}\nFalse\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
+option_4 = BoolOption(name="multi1", doc="multi1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.multi1"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(True), 'rougail.general.bool': ParamOption(option_3)})), properties=frozenset({"normal"}))
+option_5 = BoolOption(name="multi2", doc="multi2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.multi2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(True), 'rougail.general.bool': ParamOption(option_3)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/12auto_jinja_if_bool/tiramisu/multi.py b/tests/dictionaries/12auto_jinja_if_bool/tiramisu/multi.py
new file mode 100644
index 000000000..ba075c437
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_if_bool/tiramisu/multi.py
@@ -0,0 +1,85 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.multi1'] = "{% if rougail.general.bool %}\nTrue\nFalse\n{% else %}\nFalse\n{% endif %}\n"
+dict_env['default_1.rougail.general.multi2'] = "{% if not rougail.general.bool %}\nTrue\nFalse\n{% else %}\nFalse\n{% endif %}\n"
+dict_env['default_2.rougail.general.multi1'] = "{% if rougail.general.bool %}\nTrue\nFalse\n{% else %}\nFalse\n{% endif %}\n"
+dict_env['default_2.rougail.general.multi2'] = "{% if not rougail.general.bool %}\nTrue\nFalse\n{% else %}\nFalse\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
+option_5 = BoolOption(name="multi1", doc="multi1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.multi1"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(True), 'rougail.general.bool': ParamOption(option_4)})), properties=frozenset({"normal"}))
+option_6 = BoolOption(name="multi2", doc="multi2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.multi2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(True), 'rougail.general.bool': ParamOption(option_4)})), properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
+option_11 = BoolOption(name="multi1", doc="multi1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.multi1"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(True), 'rougail.general.bool': ParamOption(option_10)})), properties=frozenset({"normal"}))
+option_12 = BoolOption(name="multi2", doc="multi2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.multi2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(True), 'rougail.general.bool': ParamOption(option_10)})), properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/01auto_jinja_if_bool/xml/00-base.xml b/tests/dictionaries/12auto_jinja_if_bool/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_bool/xml/00-base.xml
rename to tests/dictionaries/12auto_jinja_if_bool/xml/00-base.xml
diff --git a/tests/dictionaries/01auto_jinja_if_int/__init__.py b/tests/dictionaries/12auto_jinja_if_int/__init__.py
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_int/__init__.py
rename to tests/dictionaries/12auto_jinja_if_int/__init__.py
diff --git a/tests/dictionaries/12auto_jinja_if_int/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_jinja_if_int/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..3e688a526
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_if_int/dictionaries/rougail/00-base.yml
@@ -0,0 +1,14 @@
+---
+version: '1.0'
+bool:
+ type: boolean
+int1:
+ type: number
+ default:
+ type: jinja
+ jinja: '{% if rougail.bool %}1{% else %}2{% endif %}'
+int2:
+ type: number
+ default:
+ type: jinja
+ jinja: '{% if not rougail.bool %}3{% else %}4{% endif %}'
diff --git a/tests/dictionaries/01auto_jinja_if_int/makedict/after.json b/tests/dictionaries/12auto_jinja_if_int/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_int/makedict/after.json
rename to tests/dictionaries/12auto_jinja_if_int/makedict/after.json
diff --git a/tests/dictionaries/01auto_jinja_if_int/makedict/base.json b/tests/dictionaries/12auto_jinja_if_int/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_int/makedict/base.json
rename to tests/dictionaries/12auto_jinja_if_int/makedict/base.json
diff --git a/tests/dictionaries/01auto_jinja_if_int/makedict/before.json b/tests/dictionaries/12auto_jinja_if_int/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_int/makedict/before.json
rename to tests/dictionaries/12auto_jinja_if_int/makedict/before.json
diff --git a/tests/dictionaries/12auto_jinja_if_int/tiramisu/base.py b/tests/dictionaries/12auto_jinja_if_int/tiramisu/base.py
new file mode 100644
index 000000000..a04031953
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_if_int/tiramisu/base.py
@@ -0,0 +1,75 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.int1'] = "{% if rougail.bool %}1{% else %}2{% endif %}"
+dict_env['default_rougail.int2'] = "{% if not rougail.bool %}3{% else %}4{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_2 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
+option_3 = IntOption(name="int1", doc="int1", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.int1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_2)})), properties=frozenset({"normal"}))
+option_4 = IntOption(name="int2", doc="int2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.int2"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_2)})), properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/12auto_jinja_if_int/tiramisu/multi.py b/tests/dictionaries/12auto_jinja_if_int/tiramisu/multi.py
new file mode 100644
index 000000000..06dca2d22
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_if_int/tiramisu/multi.py
@@ -0,0 +1,83 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.int1'] = "{% if rougail.bool %}1{% else %}2{% endif %}"
+dict_env['default_1.rougail.int2'] = "{% if not rougail.bool %}3{% else %}4{% endif %}"
+dict_env['default_2.rougail.int1'] = "{% if rougail.bool %}1{% else %}2{% endif %}"
+dict_env['default_2.rougail.int2'] = "{% if not rougail.bool %}3{% else %}4{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
+option_4 = IntOption(name="int1", doc="int1", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.int1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_3)})), properties=frozenset({"normal"}))
+option_5 = IntOption(name="int2", doc="int2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.int2"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_3)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
+option_9 = IntOption(name="int1", doc="int1", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.int1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_8)})), properties=frozenset({"normal"}))
+option_10 = IntOption(name="int2", doc="int2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.int2"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_8)})), properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01auto_jinja_if_int/xml/00-base.xml b/tests/dictionaries/12auto_jinja_if_int/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_int/xml/00-base.xml
rename to tests/dictionaries/12auto_jinja_if_int/xml/00-base.xml
diff --git a/tests/dictionaries/01auto_jinja_if_int/yml/00-base.yml b/tests/dictionaries/12auto_jinja_if_int/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_int/yml/00-base.yml
rename to tests/dictionaries/12auto_jinja_if_int/yml/00-base.yml
diff --git a/tests/dictionaries/01auto_jinja_set/__init__.py b/tests/dictionaries/12auto_jinja_set/__init__.py
similarity index 100%
rename from tests/dictionaries/01auto_jinja_set/__init__.py
rename to tests/dictionaries/12auto_jinja_set/__init__.py
diff --git a/tests/dictionaries/12auto_jinja_set/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_jinja_set/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..d28327313
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_set/dictionaries/rougail/00-base.yml
@@ -0,0 +1,14 @@
+---
+version: '1.0'
+bool:
+ type: boolean
+int1:
+ type: number
+ default:
+ type: jinja
+ jinja: '{%set bool1 = rougail.bool %}{% if bool1 %}1{% else %}2{% endif %}'
+int2:
+ type: number
+ default:
+ type: jinja
+ jinja: '{%set bool1 = rougail.bool %}{% if not bool1 %}3{% else %}4{% endif %}'
diff --git a/tests/dictionaries/01auto_jinja_set/makedict/after.json b/tests/dictionaries/12auto_jinja_set/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_set/makedict/after.json
rename to tests/dictionaries/12auto_jinja_set/makedict/after.json
diff --git a/tests/dictionaries/01auto_jinja_set/makedict/base.json b/tests/dictionaries/12auto_jinja_set/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_set/makedict/base.json
rename to tests/dictionaries/12auto_jinja_set/makedict/base.json
diff --git a/tests/dictionaries/01auto_jinja_set/makedict/before.json b/tests/dictionaries/12auto_jinja_set/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01auto_jinja_set/makedict/before.json
rename to tests/dictionaries/12auto_jinja_set/makedict/before.json
diff --git a/tests/dictionaries/12auto_jinja_set/tiramisu/base.py b/tests/dictionaries/12auto_jinja_set/tiramisu/base.py
new file mode 100644
index 000000000..b7a3b6653
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_set/tiramisu/base.py
@@ -0,0 +1,75 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.int1'] = "{%set bool1 = rougail.bool %}{% if bool1 %}1{% else %}2{% endif %}"
+dict_env['default_rougail.int2'] = "{%set bool1 = rougail.bool %}{% if not bool1 %}3{% else %}4{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_2 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
+option_3 = IntOption(name="int1", doc="int1", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.int1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_2)})), properties=frozenset({"normal"}))
+option_4 = IntOption(name="int2", doc="int2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.int2"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_2)})), properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/12auto_jinja_set/tiramisu/multi.py b/tests/dictionaries/12auto_jinja_set/tiramisu/multi.py
new file mode 100644
index 000000000..4948b6d8e
--- /dev/null
+++ b/tests/dictionaries/12auto_jinja_set/tiramisu/multi.py
@@ -0,0 +1,83 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.int1'] = "{%set bool1 = rougail.bool %}{% if bool1 %}1{% else %}2{% endif %}"
+dict_env['default_1.rougail.int2'] = "{%set bool1 = rougail.bool %}{% if not bool1 %}3{% else %}4{% endif %}"
+dict_env['default_2.rougail.int1'] = "{%set bool1 = rougail.bool %}{% if bool1 %}1{% else %}2{% endif %}"
+dict_env['default_2.rougail.int2'] = "{%set bool1 = rougail.bool %}{% if not bool1 %}3{% else %}4{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
+option_4 = IntOption(name="int1", doc="int1", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.int1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_3)})), properties=frozenset({"normal"}))
+option_5 = IntOption(name="int2", doc="int2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.int2"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_3)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
+option_9 = IntOption(name="int1", doc="int1", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.int1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_8)})), properties=frozenset({"normal"}))
+option_10 = IntOption(name="int2", doc="int2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.int2"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_8)})), properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01auto_jinja_set/xml/00-base.xml b/tests/dictionaries/12auto_jinja_set/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01auto_jinja_set/xml/00-base.xml
rename to tests/dictionaries/12auto_jinja_set/xml/00-base.xml
diff --git a/tests/dictionaries/01auto_jinja_set/yml/00-base.yml b/tests/dictionaries/12auto_jinja_set/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01auto_jinja_set/yml/00-base.yml
rename to tests/dictionaries/12auto_jinja_set/yml/00-base.yml
diff --git a/tests/dictionaries/01auto_withoutparam/__init__.py b/tests/dictionaries/12auto_withoutparam/__init__.py
similarity index 100%
rename from tests/dictionaries/01auto_withoutparam/__init__.py
rename to tests/dictionaries/12auto_withoutparam/__init__.py
diff --git a/tests/dictionaries/12auto_withoutparam/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_withoutparam/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..6a7b569db
--- /dev/null
+++ b/tests/dictionaries/12auto_withoutparam/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ calc_val() }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01auto_withoutparam/makedict/after.json b/tests/dictionaries/12auto_withoutparam/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01auto_withoutparam/makedict/after.json
rename to tests/dictionaries/12auto_withoutparam/makedict/after.json
diff --git a/tests/dictionaries/01auto_withoutparam/makedict/base.json b/tests/dictionaries/12auto_withoutparam/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01auto_withoutparam/makedict/base.json
rename to tests/dictionaries/12auto_withoutparam/makedict/base.json
diff --git a/tests/dictionaries/01auto_withoutparam/makedict/before.json b/tests/dictionaries/12auto_withoutparam/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01auto_withoutparam/makedict/before.json
rename to tests/dictionaries/12auto_withoutparam/makedict/before.json
diff --git a/tests/dictionaries/12auto_withoutparam/tiramisu/base.py b/tests/dictionaries/12auto_withoutparam/tiramisu/base.py
new file mode 100644
index 000000000..192c65079
--- /dev/null
+++ b/tests/dictionaries/12auto_withoutparam/tiramisu/base.py
@@ -0,0 +1,74 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ calc_val() }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/12auto_withoutparam/tiramisu/multi.py b/tests/dictionaries/12auto_withoutparam/tiramisu/multi.py
new file mode 100644
index 000000000..2ca5e71a5
--- /dev/null
+++ b/tests/dictionaries/12auto_withoutparam/tiramisu/multi.py
@@ -0,0 +1,81 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ calc_val() }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ calc_val() }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01auto_withoutparam/xml/00-base.xml b/tests/dictionaries/12auto_withoutparam/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01auto_withoutparam/xml/00-base.xml
rename to tests/dictionaries/12auto_withoutparam/xml/00-base.xml
diff --git a/tests/dictionaries/01auto_withoutparam/yml/00-base.yml b/tests/dictionaries/12auto_withoutparam/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01auto_withoutparam/yml/00-base.yml
rename to tests/dictionaries/12auto_withoutparam/yml/00-base.yml
diff --git a/tests/dictionaries/01base_certificate_owner/__init__.py b/tests/dictionaries/13fill_information/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner/__init__.py
rename to tests/dictionaries/13fill_information/__init__.py
diff --git a/tests/dictionaries/13fill_information/dictionaries/rougail/00-base.yml b/tests/dictionaries/13fill_information/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..acbfb582c
--- /dev/null
+++ b/tests/dictionaries/13fill_information/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __information.test_information | calc_val }}'
+ params:
+ __information.test_information:
+ type: information
+ information: test_information
+version: '1.0'
diff --git a/tests/dictionaries/10fill_information/makedict/after.json b/tests/dictionaries/13fill_information/makedict/after.json
similarity index 100%
rename from tests/dictionaries/10fill_information/makedict/after.json
rename to tests/dictionaries/13fill_information/makedict/after.json
diff --git a/tests/dictionaries/10fill_information/makedict/base.json b/tests/dictionaries/13fill_information/makedict/base.json
similarity index 100%
rename from tests/dictionaries/10fill_information/makedict/base.json
rename to tests/dictionaries/13fill_information/makedict/base.json
diff --git a/tests/dictionaries/10fill_information/makedict/before.json b/tests/dictionaries/13fill_information/makedict/before.json
similarity index 100%
rename from tests/dictionaries/10fill_information/makedict/before.json
rename to tests/dictionaries/13fill_information/makedict/before.json
diff --git a/tests/dictionaries/13fill_information/tiramisu/base.py b/tests/dictionaries/13fill_information/tiramisu/base.py
new file mode 100644
index 000000000..e5cdc4e6c
--- /dev/null
+++ b/tests/dictionaries/13fill_information/tiramisu/base.py
@@ -0,0 +1,73 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.test_information': ParamInformation("test_information", None)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/13fill_information/tiramisu/multi.py b/tests/dictionaries/13fill_information/tiramisu/multi.py
new file mode 100644
index 000000000..125e9a2e9
--- /dev/null
+++ b/tests/dictionaries/13fill_information/tiramisu/multi.py
@@ -0,0 +1,79 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.test_information': ParamInformation("test_information", None)})), properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.test_information': ParamInformation("test_information", None)})), properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/10fill_information/xml/00-base.xml b/tests/dictionaries/13fill_information/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/10fill_information/xml/00-base.xml
rename to tests/dictionaries/13fill_information/xml/00-base.xml
diff --git a/tests/dictionaries/01base_certificate_owner_variable/__init__.py b/tests/dictionaries/13fill_information_multi/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner_variable/__init__.py
rename to tests/dictionaries/13fill_information_multi/__init__.py
diff --git a/tests/dictionaries/13fill_information_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/13fill_information_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0753b5f61
--- /dev/null
+++ b/tests/dictionaries/13fill_information_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ multi: true
+ default:
+ type: jinja
+ jinja: '{{ __information.test_information | calc_val }}'
+ params:
+ __information.test_information:
+ type: information
+ information: test_information
+version: '1.0'
diff --git a/tests/dictionaries/10fill_information_multi/makedict/after.json b/tests/dictionaries/13fill_information_multi/makedict/after.json
similarity index 100%
rename from tests/dictionaries/10fill_information_multi/makedict/after.json
rename to tests/dictionaries/13fill_information_multi/makedict/after.json
diff --git a/tests/dictionaries/10fill_information_multi/makedict/base.json b/tests/dictionaries/13fill_information_multi/makedict/base.json
similarity index 100%
rename from tests/dictionaries/10fill_information_multi/makedict/base.json
rename to tests/dictionaries/13fill_information_multi/makedict/base.json
diff --git a/tests/dictionaries/10fill_information_multi/makedict/before.json b/tests/dictionaries/13fill_information_multi/makedict/before.json
similarity index 100%
rename from tests/dictionaries/10fill_information_multi/makedict/before.json
rename to tests/dictionaries/13fill_information_multi/makedict/before.json
diff --git a/tests/dictionaries/13fill_information_multi/tiramisu/base.py b/tests/dictionaries/13fill_information_multi/tiramisu/base.py
new file mode 100644
index 000000000..d9870ebfc
--- /dev/null
+++ b/tests/dictionaries/13fill_information_multi/tiramisu/base.py
@@ -0,0 +1,73 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__information.test_information': ParamInformation("test_information", [])})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/13fill_information_multi/tiramisu/multi.py b/tests/dictionaries/13fill_information_multi/tiramisu/multi.py
new file mode 100644
index 000000000..3c0b861cc
--- /dev/null
+++ b/tests/dictionaries/13fill_information_multi/tiramisu/multi.py
@@ -0,0 +1,79 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__information.test_information': ParamInformation("test_information", [])})), properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__information.test_information': ParamInformation("test_information", [])})), properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/10fill_information_multi/xml/00-base.xml b/tests/dictionaries/13fill_information_multi/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/10fill_information_multi/xml/00-base.xml
rename to tests/dictionaries/13fill_information_multi/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file/__init__.py b/tests/dictionaries/13fill_option/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file/__init__.py
rename to tests/dictionaries/13fill_option/__init__.py
diff --git a/tests/dictionaries/13fill_option/dictionaries/rougail/00-base.yml b/tests/dictionaries/13fill_option/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..13ebb7a84
--- /dev/null
+++ b/tests/dictionaries/13fill_option/dictionaries/rougail/00-base.yml
@@ -0,0 +1,19 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ params:
+ __information.rougail.general.od.variable.test_information:
+ type: information
+ information: test_information
+ variable: rougail.general.od.variable
+ type: jinja
+ jinja: |
+ {{ __information.rougail.general.od.variable.test_information | calc_val }}
+ od:
+ variable:
+ type: string
+ description: No change
diff --git a/tests/dictionaries/10fill_option_od_information/informations.json b/tests/dictionaries/13fill_option/informations.json
similarity index 100%
rename from tests/dictionaries/10fill_option_od_information/informations.json
rename to tests/dictionaries/13fill_option/informations.json
diff --git a/tests/dictionaries/10fill_option_od_information/makedict/after.json b/tests/dictionaries/13fill_option/makedict/after.json
similarity index 100%
rename from tests/dictionaries/10fill_option_od_information/makedict/after.json
rename to tests/dictionaries/13fill_option/makedict/after.json
diff --git a/tests/dictionaries/10fill_option_od_information/makedict/base.json b/tests/dictionaries/13fill_option/makedict/base.json
similarity index 100%
rename from tests/dictionaries/10fill_option_od_information/makedict/base.json
rename to tests/dictionaries/13fill_option/makedict/base.json
diff --git a/tests/dictionaries/10fill_option_od_information/makedict/before.json b/tests/dictionaries/13fill_option/makedict/before.json
similarity index 100%
rename from tests/dictionaries/10fill_option_od_information/makedict/before.json
rename to tests/dictionaries/13fill_option/makedict/before.json
diff --git a/tests/dictionaries/13fill_option/tiramisu/base.py b/tests/dictionaries/13fill_option/tiramisu/base.py
new file mode 100644
index 000000000..7ff91b3b4
--- /dev/null
+++ b/tests/dictionaries/13fill_option/tiramisu/base.py
@@ -0,0 +1,75 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.od.variable.test_information | calc_val }}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_5 = StrOption(name="variable", doc="No change", properties=frozenset({"normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.od.variable.test_information': ParamInformation("test_information", None, option=option_5)})), properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="od", doc="od", children=[option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/13fill_option/tiramisu/multi.py b/tests/dictionaries/13fill_option/tiramisu/multi.py
new file mode 100644
index 000000000..b924fcdbe
--- /dev/null
+++ b/tests/dictionaries/13fill_option/tiramisu/multi.py
@@ -0,0 +1,83 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.od.variable.test_information | calc_val }}\n"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.od.variable.test_information | calc_val }}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_6 = StrOption(name="variable", doc="No change", properties=frozenset({"normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.od.variable.test_information': ParamInformation("test_information", None, option=option_6)})), properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="od", doc="od", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = StrOption(name="variable", doc="No change", properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.od.variable.test_information': ParamInformation("test_information", None, option=option_12)})), properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="od", doc="od", children=[option_12], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/10fill_option_od_information/xml/00-base.xml b/tests/dictionaries/13fill_option/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/10fill_option_od_information/xml/00-base.xml
rename to tests/dictionaries/13fill_option/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_disabled/__init__.py b/tests/dictionaries/13fill_option_information/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_disabled/__init__.py
rename to tests/dictionaries/13fill_option_information/__init__.py
diff --git a/tests/dictionaries/13fill_option_information/dictionaries/rougail/00-base.yml b/tests/dictionaries/13fill_option_information/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..3dd93a275
--- /dev/null
+++ b/tests/dictionaries/13fill_option_information/dictionaries/rougail/00-base.yml
@@ -0,0 +1,17 @@
+general:
+ variable:
+ type: string
+ description: No change
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __information.rougail.general.variable.test_information | calc_val
+ }}'
+ params:
+ __information.rougail.general.variable.test_information:
+ type: information
+ information: test_information
+ variable: rougail.general.variable
+version: '1.0'
diff --git a/tests/dictionaries/10fill_option_information/informations.json b/tests/dictionaries/13fill_option_information/informations.json
similarity index 100%
rename from tests/dictionaries/10fill_option_information/informations.json
rename to tests/dictionaries/13fill_option_information/informations.json
diff --git a/tests/dictionaries/10fill_option_information/makedict/after.json b/tests/dictionaries/13fill_option_information/makedict/after.json
similarity index 100%
rename from tests/dictionaries/10fill_option_information/makedict/after.json
rename to tests/dictionaries/13fill_option_information/makedict/after.json
diff --git a/tests/dictionaries/10fill_option_information/makedict/base.json b/tests/dictionaries/13fill_option_information/makedict/base.json
similarity index 100%
rename from tests/dictionaries/10fill_option_information/makedict/base.json
rename to tests/dictionaries/13fill_option_information/makedict/base.json
diff --git a/tests/dictionaries/10fill_option_information/makedict/before.json b/tests/dictionaries/13fill_option_information/makedict/before.json
similarity index 100%
rename from tests/dictionaries/10fill_option_information/makedict/before.json
rename to tests/dictionaries/13fill_option_information/makedict/before.json
diff --git a/tests/dictionaries/13fill_option_information/tiramisu/base.py b/tests/dictionaries/13fill_option_information/tiramisu/base.py
new file mode 100644
index 000000000..1b09289b9
--- /dev/null
+++ b/tests/dictionaries/13fill_option_information/tiramisu/base.py
@@ -0,0 +1,74 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.variable.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="variable", doc="No change", properties=frozenset({"normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.variable.test_information': ParamInformation("test_information", None, option=option_3)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/13fill_option_information/tiramisu/multi.py b/tests/dictionaries/13fill_option_information/tiramisu/multi.py
new file mode 100644
index 000000000..ae9c473fe
--- /dev/null
+++ b/tests/dictionaries/13fill_option_information/tiramisu/multi.py
@@ -0,0 +1,81 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.variable.test_information | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.variable.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="variable", doc="No change", properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.variable.test_information': ParamInformation("test_information", None, option=option_4)})), properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="variable", doc="No change", properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.variable.test_information': ParamInformation("test_information", None, option=option_9)})), properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/10fill_option_information/xml/00-base.xml b/tests/dictionaries/13fill_option_information/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/10fill_option_information/xml/00-base.xml
rename to tests/dictionaries/13fill_option_information/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_include/__init__.py b/tests/dictionaries/15fill_autosave/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_include/__init__.py
rename to tests/dictionaries/15fill_autosave/__init__.py
diff --git a/tests/dictionaries/15fill_autosave/dictionaries/rougail/00-base.yml b/tests/dictionaries/15fill_autosave/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..b16c01b70
--- /dev/null
+++ b/tests/dictionaries/15fill_autosave/dictionaries/rougail/00-base.yml
@@ -0,0 +1,15 @@
+server_deployed:
+ type: boolean
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ auto_save: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01fill_autosave/makedict/after.json b/tests/dictionaries/15fill_autosave/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01fill_autosave/makedict/after.json
rename to tests/dictionaries/15fill_autosave/makedict/after.json
diff --git a/tests/dictionaries/01fill_autosave/makedict/base.json b/tests/dictionaries/15fill_autosave/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01fill_autosave/makedict/base.json
rename to tests/dictionaries/15fill_autosave/makedict/base.json
diff --git a/tests/dictionaries/01fill_autosave/makedict/before.json b/tests/dictionaries/15fill_autosave/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01fill_autosave/makedict/before.json
rename to tests/dictionaries/15fill_autosave/makedict/before.json
diff --git a/tests/dictionaries/15fill_autosave/tiramisu/base.py b/tests/dictionaries/15fill_autosave/tiramisu/base.py
new file mode 100644
index 000000000..4867de5dd
--- /dev/null
+++ b/tests/dictionaries/15fill_autosave/tiramisu/base.py
@@ -0,0 +1,75 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"basic", "force_store_value"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/15fill_autosave/tiramisu/multi.py b/tests/dictionaries/15fill_autosave/tiramisu/multi.py
new file mode 100644
index 000000000..712178467
--- /dev/null
+++ b/tests/dictionaries/15fill_autosave/tiramisu/multi.py
@@ -0,0 +1,83 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_6)})), properties=frozenset({"basic", "force_store_value"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_9 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_12)})), properties=frozenset({"basic", "force_store_value"}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11, option_12], properties=frozenset({"basic"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[option_9, optiondescription_10], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/01fill_autosave/xml/00-base.xml b/tests/dictionaries/15fill_autosave/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01fill_autosave/xml/00-base.xml
rename to tests/dictionaries/15fill_autosave/xml/00-base.xml
diff --git a/tests/dictionaries/01fill_autosave/yml/00-base.yml b/tests/dictionaries/15fill_autosave/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01fill_autosave/yml/00-base.yml
rename to tests/dictionaries/15fill_autosave/yml/00-base.yml
diff --git a/tests/dictionaries/01base_file_include_content/__init__.py b/tests/dictionaries/15fill_base/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_include_content/__init__.py
rename to tests/dictionaries/15fill_base/__init__.py
diff --git a/tests/dictionaries/15fill_base/dictionaries/rougail/00-base.yml b/tests/dictionaries/15fill_base/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ab500946e
--- /dev/null
+++ b/tests/dictionaries/15fill_base/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01fill_mandatory/makedict/after.json b/tests/dictionaries/15fill_base/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01fill_mandatory/makedict/after.json
rename to tests/dictionaries/15fill_base/makedict/after.json
diff --git a/tests/dictionaries/01fill_mandatory/makedict/base.json b/tests/dictionaries/15fill_base/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01fill_mandatory/makedict/base.json
rename to tests/dictionaries/15fill_base/makedict/base.json
diff --git a/tests/dictionaries/01fill_mandatory/makedict/before.json b/tests/dictionaries/15fill_base/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01fill_mandatory/makedict/before.json
rename to tests/dictionaries/15fill_base/makedict/before.json
diff --git a/tests/dictionaries/15fill_base/tiramisu/base.py b/tests/dictionaries/15fill_base/tiramisu/base.py
new file mode 100644
index 000000000..d3f53fa94
--- /dev/null
+++ b/tests/dictionaries/15fill_base/tiramisu/base.py
@@ -0,0 +1,74 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/15fill_base/tiramisu/multi.py b/tests/dictionaries/15fill_base/tiramisu/multi.py
new file mode 100644
index 000000000..03ccb3771
--- /dev/null
+++ b/tests/dictionaries/15fill_base/tiramisu/multi.py
@@ -0,0 +1,81 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_10)})), properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01fill_base/xml/00-base.xml b/tests/dictionaries/15fill_base/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01fill_base/xml/00-base.xml
rename to tests/dictionaries/15fill_base/xml/00-base.xml
diff --git a/tests/dictionaries/01fill_base/yml/00-base.yml b/tests/dictionaries/15fill_base/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01fill_base/yml/00-base.yml
rename to tests/dictionaries/15fill_base/yml/00-base.yml
diff --git a/tests/dictionaries/01base_file_include_name/__init__.py b/tests/dictionaries/15fill_mandatory/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_include_name/__init__.py
rename to tests/dictionaries/15fill_mandatory/__init__.py
diff --git a/tests/dictionaries/15fill_mandatory/dictionaries/rougail/00-base.yml b/tests/dictionaries/15fill_mandatory/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..5e2ffd6b4
--- /dev/null
+++ b/tests/dictionaries/15fill_mandatory/dictionaries/rougail/00-base.yml
@@ -0,0 +1,15 @@
+general:
+ mode: basic
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ mandatory: true
+ mode: expert
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01fill_optional/makedict/after.json b/tests/dictionaries/15fill_mandatory/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01fill_optional/makedict/after.json
rename to tests/dictionaries/15fill_mandatory/makedict/after.json
diff --git a/tests/dictionaries/01fill_optional/makedict/base.json b/tests/dictionaries/15fill_mandatory/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01fill_optional/makedict/base.json
rename to tests/dictionaries/15fill_mandatory/makedict/base.json
diff --git a/tests/dictionaries/01fill_optional/makedict/before.json b/tests/dictionaries/15fill_mandatory/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01fill_optional/makedict/before.json
rename to tests/dictionaries/15fill_mandatory/makedict/before.json
diff --git a/tests/dictionaries/15fill_mandatory/tiramisu/base.py b/tests/dictionaries/15fill_mandatory/tiramisu/base.py
new file mode 100644
index 000000000..e340fd703
--- /dev/null
+++ b/tests/dictionaries/15fill_mandatory/tiramisu/base.py
@@ -0,0 +1,74 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/15fill_mandatory/tiramisu/multi.py b/tests/dictionaries/15fill_mandatory/tiramisu/multi.py
new file mode 100644
index 000000000..3795f9ffa
--- /dev/null
+++ b/tests/dictionaries/15fill_mandatory/tiramisu/multi.py
@@ -0,0 +1,81 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_10)})), properties=frozenset({"expert", "mandatory"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"basic"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01fill_mandatory/xml/00-base.xml b/tests/dictionaries/15fill_mandatory/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01fill_mandatory/xml/00-base.xml
rename to tests/dictionaries/15fill_mandatory/xml/00-base.xml
diff --git a/tests/dictionaries/01fill_mandatory/yml/00-base.yml b/tests/dictionaries/15fill_mandatory/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01fill_mandatory/yml/00-base.yml
rename to tests/dictionaries/15fill_mandatory/yml/00-base.yml
diff --git a/tests/dictionaries/01base_file_mode/__init__.py b/tests/dictionaries/15fill_number/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_mode/__init__.py
rename to tests/dictionaries/15fill_number/__init__.py
diff --git a/tests/dictionaries/15fill_number/dictionaries/rougail/00-base.yml b/tests/dictionaries/15fill_number/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..d8c520b53
--- /dev/null
+++ b/tests/dictionaries/15fill_number/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: number
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ 3 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01fill_number/makedict/after.json b/tests/dictionaries/15fill_number/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01fill_number/makedict/after.json
rename to tests/dictionaries/15fill_number/makedict/after.json
diff --git a/tests/dictionaries/01fill_number/makedict/base.json b/tests/dictionaries/15fill_number/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01fill_number/makedict/base.json
rename to tests/dictionaries/15fill_number/makedict/base.json
diff --git a/tests/dictionaries/01fill_number/makedict/before.json b/tests/dictionaries/15fill_number/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01fill_number/makedict/before.json
rename to tests/dictionaries/15fill_number/makedict/before.json
diff --git a/tests/dictionaries/15fill_number/tiramisu/base.py b/tests/dictionaries/15fill_number/tiramisu/base.py
new file mode 100644
index 000000000..103a10683
--- /dev/null
+++ b/tests/dictionaries/15fill_number/tiramisu/base.py
@@ -0,0 +1,74 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ 3 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = IntOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/15fill_number/tiramisu/multi.py b/tests/dictionaries/15fill_number/tiramisu/multi.py
new file mode 100644
index 000000000..ee3d73447
--- /dev/null
+++ b/tests/dictionaries/15fill_number/tiramisu/multi.py
@@ -0,0 +1,81 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ 3 | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ 3 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = IntOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = IntOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01fill_number/xml/00-base.xml b/tests/dictionaries/15fill_number/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01fill_number/xml/00-base.xml
rename to tests/dictionaries/15fill_number/xml/00-base.xml
diff --git a/tests/dictionaries/01fill_number/yml/00-base.yml b/tests/dictionaries/15fill_number/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01fill_number/yml/00-base.yml
rename to tests/dictionaries/15fill_number/yml/00-base.yml
diff --git a/tests/dictionaries/01base_file_mode2/__init__.py b/tests/dictionaries/15fill_only_optional/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_mode2/__init__.py
rename to tests/dictionaries/15fill_only_optional/__init__.py
diff --git a/tests/dictionaries/15fill_only_optional/dictionaries/rougail/00-base.yml b/tests/dictionaries/15fill_only_optional/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..5c3fff7de
--- /dev/null
+++ b/tests/dictionaries/15fill_only_optional/dictionaries/rougail/00-base.yml
@@ -0,0 +1,21 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: |
+ {% if __mode_conteneur_actif4 is defined %}
+ {{ __mode_conteneur_actif4 }}
+ {% endif %}
+ params:
+ __mode_conteneur_actif4:
+ type: variable
+ variable: rougail.mode_conteneur_actif4
+ optional: true
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/01fill_only_optional/makedict/after.json b/tests/dictionaries/15fill_only_optional/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01fill_only_optional/makedict/after.json
rename to tests/dictionaries/15fill_only_optional/makedict/after.json
diff --git a/tests/dictionaries/01fill_only_optional/makedict/base.json b/tests/dictionaries/15fill_only_optional/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01fill_only_optional/makedict/base.json
rename to tests/dictionaries/15fill_only_optional/makedict/base.json
diff --git a/tests/dictionaries/01fill_only_optional/makedict/before.json b/tests/dictionaries/15fill_only_optional/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01fill_only_optional/makedict/before.json
rename to tests/dictionaries/15fill_only_optional/makedict/before.json
diff --git a/tests/dictionaries/15fill_only_optional/tiramisu/base.py b/tests/dictionaries/15fill_only_optional/tiramisu/base.py
new file mode 100644
index 000000000..0ecad626d
--- /dev/null
+++ b/tests/dictionaries/15fill_only_optional/tiramisu/base.py
@@ -0,0 +1,74 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{% if __mode_conteneur_actif4 is defined %}\n{{ __mode_conteneur_actif4 }}\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/15fill_only_optional/tiramisu/multi.py b/tests/dictionaries/15fill_only_optional/tiramisu/multi.py
new file mode 100644
index 000000000..e4d0b5362
--- /dev/null
+++ b/tests/dictionaries/15fill_only_optional/tiramisu/multi.py
@@ -0,0 +1,81 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{% if __mode_conteneur_actif4 is defined %}\n{{ __mode_conteneur_actif4 }}\n{% endif %}\n"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{% if __mode_conteneur_actif4 is defined %}\n{{ __mode_conteneur_actif4 }}\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01fill_only_optional/xml/00-base.xml b/tests/dictionaries/15fill_only_optional/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01fill_only_optional/xml/00-base.xml
rename to tests/dictionaries/15fill_only_optional/xml/00-base.xml
diff --git a/tests/dictionaries/01fill_only_optional/yml/00-base.yml b/tests/dictionaries/15fill_only_optional/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01fill_only_optional/yml/00-base.yml
rename to tests/dictionaries/15fill_only_optional/yml/00-base.yml
diff --git a/tests/dictionaries/01base_file_owner/__init__.py b/tests/dictionaries/15load_autosave/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_owner/__init__.py
rename to tests/dictionaries/15load_autosave/__init__.py
diff --git a/tests/dictionaries/15load_autosave/dictionaries/rougail/00-base.yml b/tests/dictionaries/15load_autosave/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..d0c8eeb01
--- /dev/null
+++ b/tests/dictionaries/15load_autosave/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+server_deployed:
+ type: boolean
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ auto_save: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/00load_autosave/makedict/after.json b/tests/dictionaries/15load_autosave/makedict/after.json
similarity index 100%
rename from tests/dictionaries/00load_autosave/makedict/after.json
rename to tests/dictionaries/15load_autosave/makedict/after.json
diff --git a/tests/dictionaries/00load_autosave/makedict/base.json b/tests/dictionaries/15load_autosave/makedict/base.json
similarity index 100%
rename from tests/dictionaries/00load_autosave/makedict/base.json
rename to tests/dictionaries/15load_autosave/makedict/base.json
diff --git a/tests/dictionaries/00load_autosave/makedict/before.json b/tests/dictionaries/15load_autosave/makedict/before.json
similarity index 100%
rename from tests/dictionaries/00load_autosave/makedict/before.json
rename to tests/dictionaries/15load_autosave/makedict/before.json
diff --git a/tests/dictionaries/15load_autosave/tiramisu/base.py b/tests/dictionaries/15load_autosave/tiramisu/base.py
new file mode 100644
index 000000000..17311ac61
--- /dev/null
+++ b/tests/dictionaries/15load_autosave/tiramisu/base.py
@@ -0,0 +1,26 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "force_store_value", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/15load_autosave/tiramisu/multi.py b/tests/dictionaries/15load_autosave/tiramisu/multi.py
new file mode 100644
index 000000000..9f15ee39b
--- /dev/null
+++ b/tests/dictionaries/15load_autosave/tiramisu/multi.py
@@ -0,0 +1,32 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "force_store_value", "mandatory"}))
+optiondescription_4 = OptionDescription(name="general", doc="général", children=[option_5], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_8 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "force_store_value", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="général", children=[option_10], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[option_8, optiondescription_9], properties=frozenset({"basic"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/00load_autosave/xml/00-base.xml b/tests/dictionaries/15load_autosave/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/00load_autosave/xml/00-base.xml
rename to tests/dictionaries/15load_autosave/xml/00-base.xml
diff --git a/tests/dictionaries/00load_autosave/yml/00-base.yml b/tests/dictionaries/15load_autosave/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/00load_autosave/yml/00-base.yml
rename to tests/dictionaries/15load_autosave/yml/00-base.yml
diff --git a/tests/dictionaries/01base_file_owner_variable/__init__.py b/tests/dictionaries/15load_autosaveexpert/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_owner_variable/__init__.py
rename to tests/dictionaries/15load_autosaveexpert/__init__.py
diff --git a/tests/dictionaries/15load_autosaveexpert/dictionaries/rougail/00-base.yml b/tests/dictionaries/15load_autosaveexpert/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..6bed2dd57
--- /dev/null
+++ b/tests/dictionaries/15load_autosaveexpert/dictionaries/rougail/00-base.yml
@@ -0,0 +1,11 @@
+server_deployed:
+ type: boolean
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ auto_save: true
+ mode: expert
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/00load_autosaveexpert/makedict/after.json b/tests/dictionaries/15load_autosaveexpert/makedict/after.json
similarity index 100%
rename from tests/dictionaries/00load_autosaveexpert/makedict/after.json
rename to tests/dictionaries/15load_autosaveexpert/makedict/after.json
diff --git a/tests/dictionaries/00load_autosaveexpert/makedict/base.json b/tests/dictionaries/15load_autosaveexpert/makedict/base.json
similarity index 100%
rename from tests/dictionaries/00load_autosaveexpert/makedict/base.json
rename to tests/dictionaries/15load_autosaveexpert/makedict/base.json
diff --git a/tests/dictionaries/00load_autosaveexpert/makedict/before.json b/tests/dictionaries/15load_autosaveexpert/makedict/before.json
similarity index 100%
rename from tests/dictionaries/00load_autosaveexpert/makedict/before.json
rename to tests/dictionaries/15load_autosaveexpert/makedict/before.json
diff --git a/tests/dictionaries/15load_autosaveexpert/tiramisu/base.py b/tests/dictionaries/15load_autosaveexpert/tiramisu/base.py
new file mode 100644
index 000000000..edca84c25
--- /dev/null
+++ b/tests/dictionaries/15load_autosaveexpert/tiramisu/base.py
@@ -0,0 +1,26 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "force_store_value", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/15load_autosaveexpert/tiramisu/multi.py b/tests/dictionaries/15load_autosaveexpert/tiramisu/multi.py
new file mode 100644
index 000000000..c15265f09
--- /dev/null
+++ b/tests/dictionaries/15load_autosaveexpert/tiramisu/multi.py
@@ -0,0 +1,32 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "force_store_value", "mandatory"}))
+optiondescription_4 = OptionDescription(name="general", doc="général", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "force_store_value", "mandatory"}))
+optiondescription_9 = OptionDescription(name="general", doc="général", children=[option_10], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/00load_autosaveexpert/xml/00-base.xml b/tests/dictionaries/15load_autosaveexpert/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/00load_autosaveexpert/xml/00-base.xml
rename to tests/dictionaries/15load_autosaveexpert/xml/00-base.xml
diff --git a/tests/dictionaries/00load_autosaveexpert/yml/00-base.yml b/tests/dictionaries/15load_autosaveexpert/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/00load_autosaveexpert/yml/00-base.yml
rename to tests/dictionaries/15load_autosaveexpert/yml/00-base.yml
diff --git a/tests/dictionaries/20family_append/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_append/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..765ba2c20
--- /dev/null
+++ b/tests/dictionaries/20family_append/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/20family_append/dictionaries/rougail/01-base.yml b/tests/dictionaries/20family_append/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..6819701d7
--- /dev/null
+++ b/tests/dictionaries/20family_append/dictionaries/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/20family_append/tiramisu/base.py b/tests/dictionaries/20family_append/tiramisu/base.py
index e7c85c725..3569972c6 100644
--- a/tests/dictionaries/20family_append/tiramisu/base.py
+++ b/tests/dictionaries/20family_append/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_append/tiramisu/multi.py b/tests/dictionaries/20family_append/tiramisu/multi.py
index 56228fb10..27c8a5993 100644
--- a/tests/dictionaries/20family_append/tiramisu/multi.py
+++ b/tests/dictionaries/20family_append/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/20family_disabled/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_disabled/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..e4368ad4c
--- /dev/null
+++ b/tests/dictionaries/20family_disabled/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ description: No change
+ disabled: true
+ default: non
diff --git a/tests/dictionaries/20family_disabled/dictionaries/rougail/01-base.yml b/tests/dictionaries/20family_disabled/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..ac9e6f877
--- /dev/null
+++ b/tests/dictionaries/20family_disabled/dictionaries/rougail/01-base.yml
@@ -0,0 +1,5 @@
+---
+version: '1.0'
+general:
+ redefine: true
+ disabled: true
diff --git a/tests/dictionaries/20family_disabled/tiramisu/base.py b/tests/dictionaries/20family_disabled/tiramisu/base.py
index 0048775f7..4a7fbea30 100644
--- a/tests/dictionaries/20family_disabled/tiramisu/base.py
+++ b/tests/dictionaries/20family_disabled/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"disabled", "normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"disabled", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_disabled/tiramisu/multi.py b/tests/dictionaries/20family_disabled/tiramisu/multi.py
index 318c2160e..0c1f3425e 100644
--- a/tests/dictionaries/20family_disabled/tiramisu/multi.py
+++ b/tests/dictionaries/20family_disabled/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"disabled", "normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"disabled", "normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"disabled", "normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/20family_disabled/yml/01-base.yml b/tests/dictionaries/20family_disabled/yml/01-base.yml
deleted file mode 100644
index 7a4aaed83..000000000
--- a/tests/dictionaries/20family_disabled/yml/01-base.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- disabled: true
diff --git a/tests/dictionaries/20family_dynamic/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4839ed54c
--- /dev/null
+++ b/tests/dictionaries/20family_dynamic/dictionaries/rougail/00-base.yml
@@ -0,0 +1,15 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries/20family_dynamic/tiramisu/base.py b/tests/dictionaries/20family_dynamic/tiramisu/base.py
index ec11f2e16..29caa3e5c 100644
--- a/tests/dictionaries/20family_dynamic/tiramisu/base.py
+++ b/tests/dictionaries/20family_dynamic/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_dynamic/tiramisu/multi.py b/tests/dictionaries/20family_dynamic/tiramisu/multi.py
index 8f4723e66..2b9d2bb95 100644
--- a/tests/dictionaries/20family_dynamic/tiramisu/multi.py
+++ b/tests/dictionaries/20family_dynamic/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,28 +17,19 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"normal"}))
-option_8 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-optiondescription_7 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_6, notraisepropertyerror=True)))), children=[option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"normal"}))
+option_12 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+optiondescription_11 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/20family_dynamic_calc/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_calc/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..fdfe761bd
--- /dev/null
+++ b/tests/dictionaries/20family_dynamic_calc/dictionaries/rougail/00-base.yml
@@ -0,0 +1,29 @@
+---
+version: '1.0'
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default: val
+new:
+ newvar:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ params:
+ vardynval1:
+ type: variable
+ variable: rougail.dynval1.vardynval1
+ jinja: |
+ {{ vardynval1 | calc_val }}
diff --git a/tests/dictionaries/20family_dynamic_calc/tiramisu/base.py b/tests/dictionaries/20family_dynamic_calc/tiramisu/base.py
index 6017207a3..9216a6d34 100644
--- a/tests/dictionaries/20family_dynamic_calc/tiramisu/base.py
+++ b/tests/dictionaries/20family_dynamic_calc/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="newvar", doc="No change", default=Calculation(func.calc_val, Params((ParamDynOption(option_4, 'val1', optiondescription_3)))), properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+dict_env['default_rougail.new.newvar'] = "{{ vardynval1 | calc_val }}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+option_7 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardynval1': ParamDynOption(option_5, 'val1', optiondescription_4)})), properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_dynamic_calc/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_calc/tiramisu/multi.py
index 7f350e073..11435082d 100644
--- a/tests/dictionaries/20family_dynamic_calc/tiramisu/multi.py
+++ b/tests/dictionaries/20family_dynamic_calc/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,32 +17,72 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="newvar", doc="No change", default=Calculation(func.calc_val, Params((ParamDynOption(option_4, 'val1', optiondescription_3)))), properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
-option_10 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_8, notraisepropertyerror=True)))), children=[option_10], properties=frozenset({"normal"}))
-option_12 = StrOption(name="newvar", doc="No change", default=Calculation(func.calc_val, Params((ParamDynOption(option_10, 'val1', optiondescription_9)))), properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="new", doc="new", children=[option_12], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7, optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+dict_env['default_1.rougail.new.newvar'] = "{{ vardynval1 | calc_val }}\n"
+dict_env['default_2.rougail.new.newvar'] = "{{ vardynval1 | calc_val }}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"normal"}))
+option_8 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardynval1': ParamDynOption(option_6, 'val1', optiondescription_5)})), properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"normal"}))
+option_14 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_13 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"normal"}))
+option_16 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardynval1': ParamDynOption(option_14, 'val1', optiondescription_13)})), properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="new", doc="new", children=[option_16], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/20family_dynamic_calc2/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_calc2/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..bddf3b5b0
--- /dev/null
+++ b/tests/dictionaries/20family_dynamic_calc2/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+---
+version: '1.0'
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default: val
+ hidden:
+ type: jinja
+ jinja: |
+ {% if rougail.new.newvar == "non" %}
+ newvar is non
+ {% endif %}
+new:
+ newvar:
+ type: string
+ description: No change
diff --git a/tests/dictionaries/20family_dynamic_calc2/tiramisu/base.py b/tests/dictionaries/20family_dynamic_calc2/tiramisu/base.py
index 963dece54..c0d58a9f5 100644
--- a/tests/dictionaries/20family_dynamic_calc2/tiramisu/base.py
+++ b/tests/dictionaries/20family_dynamic_calc2/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_6 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+dict_env['frozen_rougail.dyn.vardyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n"
+dict_env['hidden_rougail.dyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_7 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.dyn.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_7)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.dyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_7)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_dynamic_calc2/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_calc2/tiramisu/multi.py
index 8d6949b3a..bd52ac0f7 100644
--- a/tests/dictionaries/20family_dynamic_calc2/tiramisu/multi.py
+++ b/tests/dictionaries/20family_dynamic_calc2/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,32 +17,74 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_6 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
-option_12 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
-option_10 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_12, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_12, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_9 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_8, notraisepropertyerror=True)))), children=[option_10], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_12, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_11 = OptionDescription(name="new", doc="new", children=[option_12], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7, optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+dict_env['frozen_1.rougail.dyn.vardyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n"
+dict_env['hidden_1.rougail.dyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n"
+dict_env['frozen_2.rougail.dyn.vardyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n"
+dict_env['hidden_2.rougail.dyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_8 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
+option_6 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.dyn.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_8)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.dyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_8)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"normal"}))
+option_16 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
+option_14 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"force_default_on_freeze", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.dyn.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_16)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_13 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.dyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_16)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_15 = OptionDescription(name="new", doc="new", children=[option_16], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/20family_dynamic_calc_suffix/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_calc_suffix/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ab109ddea
--- /dev/null
+++ b/tests/dictionaries/20family_dynamic_calc_suffix/dictionaries/rougail/00-base.yml
@@ -0,0 +1,25 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __suffix | calc_val }}'
+ params:
+ __suffix:
+ type: suffix
+new:
+ newvar:
+ type: string
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/base.py b/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/base.py
index 4f2983b98..eab5f32c3 100644
--- a/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/base.py
+++ b/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", default=Calculation(func.calc_val, Params((ParamSuffix()))), properties=frozenset({"normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+dict_env['default_rougail.dyn.vardyn'] = "{{ __suffix | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.dyn.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__suffix': ParamSuffix()})), properties=frozenset({"normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+option_7 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/multi.py
index a71a1f251..25134aa3f 100644
--- a/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/multi.py
+++ b/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,32 +17,72 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", default=Calculation(func.calc_val, Params((ParamSuffix()))), properties=frozenset({"normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
-option_10 = StrOption(name="vardyn", doc="No change", default=Calculation(func.calc_val, Params((ParamSuffix()))), properties=frozenset({"normal"}))
-optiondescription_9 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_8, notraisepropertyerror=True)))), children=[option_10], properties=frozenset({"normal"}))
-option_12 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="new", doc="new", children=[option_12], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7, optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+dict_env['default_1.rougail.dyn.vardyn'] = "{{ __suffix | calc_val }}"
+dict_env['default_2.rougail.dyn.vardyn'] = "{{ __suffix | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="vardyn", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.dyn.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__suffix': ParamSuffix()})), properties=frozenset({"normal"}))
+optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"normal"}))
+option_8 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"normal"}))
+option_14 = StrOption(name="vardyn", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.dyn.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__suffix': ParamSuffix()})), properties=frozenset({"normal"}))
+optiondescription_13 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"normal"}))
+option_16 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="new", doc="new", children=[option_16], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/20family_dynamic_description/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_description/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..05264b5c7
--- /dev/null
+++ b/tests/dictionaries/20family_dynamic_description/dictionaries/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ description: 'Dyn '
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries/20family_dynamic_description/tiramisu/base.py b/tests/dictionaries/20family_dynamic_description/tiramisu/base.py
index 7f9864f9b..4c15a064b 100644
--- a/tests/dictionaries/20family_dynamic_description/tiramisu/base.py
+++ b/tests/dictionaries/20family_dynamic_description/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_dynamic_description/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_description/tiramisu/multi.py
index af0947212..cf59bf0f6 100644
--- a/tests/dictionaries/20family_dynamic_description/tiramisu/multi.py
+++ b/tests/dictionaries/20family_dynamic_description/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,28 +17,19 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"normal"}))
-option_8 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-optiondescription_7 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func.calc_value, Params((ParamOption(option_6, notraisepropertyerror=True)))), children=[option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"normal"}))
+option_12 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+optiondescription_11 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/20family_dynamic_jinja_fill/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_jinja_fill/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..beb2cef06
--- /dev/null
+++ b/tests/dictionaries/20family_dynamic_jinja_fill/dictionaries/rougail/00-base.yml
@@ -0,0 +1,24 @@
+---
+version: '1.0'
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default: val
+new:
+ newvar:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ rougail.dynval1.vardynval1 }}'
diff --git a/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/base.py b/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/base.py
index ee8344f44..71207618d 100644
--- a/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/base.py
+++ b/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from jinja2 import StrictUndefined, DictLoader
from jinja2.sandbox import SandboxedEnvironment
from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
kw = {}
for key, value in kwargs.items():
if '.' in key:
@@ -37,28 +35,44 @@ def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwa
c_kw[var] = value
else:
kw[key] = value
- values = ENV.get_template(__internal_jinja).render(kw)
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
convert = CONVERT_OPTION[__internal_type].get('func', str)
if __internal_multi:
- return [convert(val) for val in values.split(',')]
- return convert(values)
-def valid_with_jinja(value, **kwargs):
- kwargs[kwargs.pop('__internal_key')] = value
- value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
if value:
- raise ValueError(value)
-func.jinja_to_function = jinja_to_function
-func.valid_with_jinja = valid_with_jinja
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
dict_env = {}
-dict_env['rougail.new.newvar'] = "{{ vardynval1 }}"
from rougail.tiramisu import ConvertDynOptionDescription
+dict_env['default_rougail.new.newvar'] = "{{ rougail.dynval1.vardynval1 }}"
ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
ENV.compile_templates('jinja_caches', zip=None)
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="newvar", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardynval1': ParamDynOption(option_4, 'val1', optiondescription_3)})), properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+option_7 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.vardynval1': ParamDynOption(option_5, 'val1', optiondescription_4)})), properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/multi.py
index 162505877..eff783161 100644
--- a/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/multi.py
+++ b/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from jinja2 import StrictUndefined, DictLoader
from jinja2.sandbox import SandboxedEnvironment
from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
kw = {}
for key, value in kwargs.items():
if '.' in key:
@@ -37,38 +35,54 @@ def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwa
c_kw[var] = value
else:
kw[key] = value
- values = ENV.get_template(__internal_jinja).render(kw)
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
convert = CONVERT_OPTION[__internal_type].get('func', str)
if __internal_multi:
- return [convert(val) for val in values.split(',')]
- return convert(values)
-def valid_with_jinja(value, **kwargs):
- kwargs[kwargs.pop('__internal_key')] = value
- value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
if value:
- raise ValueError(value)
-func.jinja_to_function = jinja_to_function
-func.valid_with_jinja = valid_with_jinja
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
dict_env = {}
-dict_env['1.rougail.new.newvar'] = "{{ vardynval1 }}"
-dict_env['2.rougail.new.newvar'] = "{{ vardynval1 }}"
from rougail.tiramisu import ConvertDynOptionDescription
+dict_env['default_1.rougail.new.newvar'] = "{{ rougail.dynval1.vardynval1 }}"
+dict_env['default_2.rougail.new.newvar'] = "{{ rougail.dynval1.vardynval1 }}"
ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
ENV.compile_templates('jinja_caches', zip=None)
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="newvar", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardynval1': ParamDynOption(option_4, 'val1', optiondescription_3)})), properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
-option_10 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_8, notraisepropertyerror=True)))), children=[option_10], properties=frozenset({"normal"}))
-option_12 = StrOption(name="newvar", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardynval1': ParamDynOption(option_10, 'val1', optiondescription_9)})), properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="new", doc="new", children=[option_12], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7, optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+option_4 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"normal"}))
+option_8 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.vardynval1': ParamDynOption(option_6, 'val1', optiondescription_5)})), properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"normal"}))
+option_14 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_13 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"normal"}))
+option_16 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.vardynval1': ParamDynOption(option_14, 'val1', optiondescription_13)})), properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="new", doc="new", children=[option_16], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/20family_dynamic_leadership/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_leadership/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..594f9bb5a
--- /dev/null
+++ b/tests/dictionaries/20family_dynamic_leadership/dictionaries/rougail/00-base.yml
@@ -0,0 +1,28 @@
+---
+version: '1.0'
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ leadership:
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
diff --git a/tests/dictionaries/20family_dynamic_leadership/tiramisu/base.py b/tests/dictionaries/20family_dynamic_leadership/tiramisu/base.py
index 432de005e..74ca20d97 100644
--- a/tests/dictionaries/20family_dynamic_leadership/tiramisu/base.py
+++ b/tests/dictionaries/20family_dynamic_leadership/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_5 = Leadership(name="leadership", doc="leadership", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9])
+option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_6 = Leadership(name="leadership", doc="leadership", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5, optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_dynamic_leadership/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_leadership/tiramisu/multi.py
index e4a0819ea..4e528546a 100644
--- a/tests/dictionaries/20family_dynamic_leadership/tiramisu/multi.py
+++ b/tests/dictionaries/20family_dynamic_leadership/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,36 +17,27 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_5 = Leadership(name="leadership", doc="leadership", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18])
-option_10 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"normal"}))
-option_12 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-option_14 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_15 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
-option_16 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_13 = Leadership(name="leadership", doc="leadership", children=[option_14, option_15, option_16], properties=frozenset({"normal"}))
-optiondescription_11 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[option_12, optiondescription_13], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="2", doc="2", children=[optiondescription_20])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_19])
+option_4 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+option_8 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_9 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_10 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_7 = Leadership(name="leadership", doc="leadership", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6, optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_14 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_13 = OptionDescription(name="general", doc="general", children=[option_14], properties=frozenset({"normal"}))
+option_16 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+option_18 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_19 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_20 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_17 = Leadership(name="leadership", doc="leadership", children=[option_18, option_19, option_20], properties=frozenset({"normal"}))
+optiondescription_15 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_14, notraisepropertyerror=True)))), children=[option_16, optiondescription_17], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/20family_dynamic_number/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_number/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..78c18c363
--- /dev/null
+++ b/tests/dictionaries/20family_dynamic_number/dictionaries/rougail/00-base.yml
@@ -0,0 +1,24 @@
+---
+version: '1.0'
+general:
+ varname:
+ type: number
+ description: No change
+ multi: true
+ default:
+ - 1
+ - 2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default: val
+new:
+ newvar:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ rougail.dyn1.vardyn1 | calc_val }}'
diff --git a/tests/dictionaries/20family_dynamic_number/tiramisu/base.py b/tests/dictionaries/20family_dynamic_number/tiramisu/base.py
index 21105b17a..879db3b94 100644
--- a/tests/dictionaries/20family_dynamic_number/tiramisu/base.py
+++ b/tests/dictionaries/20family_dynamic_number/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = IntOption(name="varname", doc="No change", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="newvar", doc="No change", default=Calculation(func.calc_val, Params((ParamDynOption(option_4, '1', optiondescription_3)))), properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+dict_env['default_rougail.new.newvar'] = "{{ rougail.dyn1.vardyn1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = IntOption(name="varname", doc="No change", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+option_7 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dyn1.vardyn1': ParamDynOption(option_5, '1', optiondescription_4)})), properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_dynamic_number/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_number/tiramisu/multi.py
index 8a4d3ab19..39b3702c5 100644
--- a/tests/dictionaries/20family_dynamic_number/tiramisu/multi.py
+++ b/tests/dictionaries/20family_dynamic_number/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,32 +17,72 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = IntOption(name="varname", doc="No change", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="newvar", doc="No change", default=Calculation(func.calc_val, Params((ParamDynOption(option_4, '1', optiondescription_3)))), properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = IntOption(name="varname", doc="No change", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "normal"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
-option_10 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_8, notraisepropertyerror=True)))), children=[option_10], properties=frozenset({"normal"}))
-option_12 = StrOption(name="newvar", doc="No change", default=Calculation(func.calc_val, Params((ParamDynOption(option_10, '1', optiondescription_9)))), properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="new", doc="new", children=[option_12], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7, optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+dict_env['default_1.rougail.new.newvar'] = "{{ rougail.dyn1.vardyn1 | calc_val }}"
+dict_env['default_2.rougail.new.newvar'] = "{{ rougail.dyn1.vardyn1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = IntOption(name="varname", doc="No change", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"normal"}))
+option_8 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dyn1.vardyn1': ParamDynOption(option_6, '1', optiondescription_5)})), properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_12 = IntOption(name="varname", doc="No change", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"normal"}))
+option_14 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_13 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"normal"}))
+option_16 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dyn1.vardyn1': ParamDynOption(option_14, '1', optiondescription_13)})), properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="new", doc="new", children=[option_16], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/20family_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_empty/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..44edfef08
--- /dev/null
+++ b/tests/dictionaries/20family_empty/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ mode: basic
+ default: non
+general2:
+ help: family
+ type: family
+version: '1.0'
diff --git a/tests/dictionaries/20family_empty/tiramisu/base.py b/tests/dictionaries/20family_empty/tiramisu/base.py
index 92db6fecb..c2238b639 100644
--- a/tests/dictionaries/20family_empty/tiramisu/base.py
+++ b/tests/dictionaries/20family_empty/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"basic"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_empty/tiramisu/multi.py b/tests/dictionaries/20family_empty/tiramisu/multi.py
index 3bc95c70e..7fc73ba0e 100644
--- a/tests/dictionaries/20family_empty/tiramisu/multi.py
+++ b/tests/dictionaries/20family_empty/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"basic"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5], properties=frozenset({"basic"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"basic"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"basic"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/20family_hidden/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_hidden/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..a6e0080f2
--- /dev/null
+++ b/tests/dictionaries/20family_hidden/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ description: No change
+ hidden: true
+ default: non
diff --git a/tests/dictionaries/20family_hidden/dictionaries/rougail/01-base.yml b/tests/dictionaries/20family_hidden/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..dae52cc60
--- /dev/null
+++ b/tests/dictionaries/20family_hidden/dictionaries/rougail/01-base.yml
@@ -0,0 +1,5 @@
+---
+version: '1.0'
+general:
+ redefine: true
+ hidden: true
diff --git a/tests/dictionaries/20family_hidden/tiramisu/base.py b/tests/dictionaries/20family_hidden/tiramisu/base.py
index f7544e370..34554e215 100644
--- a/tests/dictionaries/20family_hidden/tiramisu/base.py
+++ b/tests/dictionaries/20family_hidden/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"hidden", "normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_hidden/tiramisu/multi.py b/tests/dictionaries/20family_hidden/tiramisu/multi.py
index c4d50a1d5..f3c16225d 100644
--- a/tests/dictionaries/20family_hidden/tiramisu/multi.py
+++ b/tests/dictionaries/20family_hidden/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"hidden", "normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"hidden", "normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"hidden", "normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/20family_mode/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_mode/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..71f7adc02
--- /dev/null
+++ b/tests/dictionaries/20family_mode/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ mode: basic
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/20family_mode/tiramisu/base.py b/tests/dictionaries/20family_mode/tiramisu/base.py
index 8383d644c..c2238b639 100644
--- a/tests/dictionaries/20family_mode/tiramisu/base.py
+++ b/tests/dictionaries/20family_mode/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"basic"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_mode/tiramisu/multi.py b/tests/dictionaries/20family_mode/tiramisu/multi.py
index 7b2130778..24243bf9a 100644
--- a/tests/dictionaries/20family_mode/tiramisu/multi.py
+++ b/tests/dictionaries/20family_mode/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"basic"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"basic"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"basic"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"basic"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/20family_modeleadership/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_modeleadership/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0ea2c72aa
--- /dev/null
+++ b/tests/dictionaries/20family_modeleadership/dictionaries/rougail/00-base.yml
@@ -0,0 +1,20 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+ mode: basic
+version: '1.0'
diff --git a/tests/dictionaries/20family_modeleadership/tiramisu/base.py b/tests/dictionaries/20family_modeleadership/tiramisu/base.py
index 62f0bb0d8..eab3d18ce 100644
--- a/tests/dictionaries/20family_modeleadership/tiramisu/base.py
+++ b/tests/dictionaries/20family_modeleadership/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,13 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"basic"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"basic"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"basic"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/20family_modeleadership/tiramisu/multi.py b/tests/dictionaries/20family_modeleadership/tiramisu/multi.py
index 3af970632..ecf06b1e8 100644
--- a/tests/dictionaries/20family_modeleadership/tiramisu/multi.py
+++ b/tests/dictionaries/20family_modeleadership/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,22 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic"}))
-option_5 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"basic"}))
-optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"basic"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic"}))
-option_11 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
-option_12 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"basic"}))
-optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"basic"}))
-optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"basic"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"basic"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"basic"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"basic"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, optiondescription_5], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_12 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic"}))
+option_15 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_16 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"basic"}))
+optiondescription_13 = Leadership(name="leader", doc="leader", children=[option_14, option_15, option_16], properties=frozenset({"basic"}))
+optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12, optiondescription_13], properties=frozenset({"basic"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11], properties=frozenset({"basic"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/20notemplating/makedict/after.json b/tests/dictionaries/20notemplating/makedict/after.json
deleted file mode 100644
index 23e76deff..000000000
--- a/tests/dictionaries/20notemplating/makedict/after.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/20notemplating/makedict/base.json b/tests/dictionaries/20notemplating/makedict/base.json
deleted file mode 100644
index 556722f4e..000000000
--- a/tests/dictionaries/20notemplating/makedict/base.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "services.test_service.files.file.name": "/etc/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/20notemplating/makedict/before.json b/tests/dictionaries/20notemplating/makedict/before.json
deleted file mode 100644
index 23e76deff..000000000
--- a/tests/dictionaries/20notemplating/makedict/before.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/20notemplating/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/20notemplating/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 1bc5dfc34..000000000
--- a/tests/dictionaries/20notemplating/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-C /etc/file 0644 root root - /usr/local/lib/etc/file
diff --git a/tests/dictionaries/20notemplating/tiramisu/base.py b/tests/dictionaries/20notemplating/tiramisu/base.py
deleted file mode 100644
index 7e4b21d7b..000000000
--- a/tests/dictionaries/20notemplating/tiramisu/base.py
+++ /dev/null
@@ -1,40 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_8 = StrOption(name="source", doc="source", default="file")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="file", doc="file", children=[option_7, option_8, option_6])
-optiondescription_5.impl_set_information('engine', "none")
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_9 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_12 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_9])
-optiondescription_12.impl_set_information('type', "service")
-optiondescription_11 = OptionDescription(name="services", doc="services", children=[optiondescription_12], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_10, optiondescription_11])
diff --git a/tests/dictionaries/20notemplating/tmpl/file b/tests/dictionaries/20notemplating/tmpl/file
deleted file mode 100644
index 5113d9aae..000000000
--- a/tests/dictionaries/20notemplating/tmpl/file
+++ /dev/null
@@ -1 +0,0 @@
-%%condition
diff --git a/tests/dictionaries/20override/makedict/after.json b/tests/dictionaries/20override/makedict/after.json
deleted file mode 100644
index b63e355a9..000000000
--- a/tests/dictionaries/20override/makedict/after.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.overrides.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- },
- "services.test2_service.overrides.test2_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test2_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test2_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/20override/makedict/base.json b/tests/dictionaries/20override/makedict/base.json
deleted file mode 100644
index 9a91257aa..000000000
--- a/tests/dictionaries/20override/makedict/base.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "services.test_service.overrides.test_service.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true,
- "services.test2_service.overrides.test2_service.activate": true,
- "services.test2_service.activate": true,
- "services.test2_service.manage": true
-}
diff --git a/tests/dictionaries/20override/makedict/before.json b/tests/dictionaries/20override/makedict/before.json
deleted file mode 100644
index b63e355a9..000000000
--- a/tests/dictionaries/20override/makedict/before.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.overrides.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- },
- "services.test2_service.overrides.test2_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test2_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test2_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/20override/result/systemd/system/test.service.d/rougail.conf b/tests/dictionaries/20override/result/systemd/system/test.service.d/rougail.conf
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries/20override/result/systemd/system/test.service.d/rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries/20override/result/systemd/system/test2.service.d/rougail.conf b/tests/dictionaries/20override/result/systemd/system/test2.service.d/rougail.conf
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries/20override/result/systemd/system/test2.service.d/rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries/20override/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/20override/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/20override/tiramisu/base.py b/tests/dictionaries/20override/tiramisu/base.py
deleted file mode 100644
index 2c6238631..000000000
--- a/tests/dictionaries/20override/tiramisu/base.py
+++ /dev/null
@@ -1,49 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="test_service", doc="test.service", children=[option_6])
-optiondescription_5.impl_set_information('name', "test.service")
-optiondescription_5.impl_set_information('source', "test.service")
-optiondescription_4 = OptionDescription(name="overrides", doc="overrides", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_15 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_7])
-optiondescription_15.impl_set_information('type', "service")
-option_11 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_10 = OptionDescription(name="test2_service", doc="test2.service", children=[option_11])
-optiondescription_10.impl_set_information('engine', "jinja")
-optiondescription_10.impl_set_information('name', "test2.service")
-optiondescription_10.impl_set_information('source', "test2.service")
-optiondescription_9 = OptionDescription(name="overrides", doc="overrides", children=[optiondescription_10])
-option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_12 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_16 = OptionDescription(name="test2_service", doc="test2.service", children=[optiondescription_9, option_8, option_12])
-optiondescription_16.impl_set_information('type', "service")
-optiondescription_14 = OptionDescription(name="services", doc="services", children=[optiondescription_15, optiondescription_16], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_14])
diff --git a/tests/dictionaries/20override/tmpl/test.service b/tests/dictionaries/20override/tmpl/test.service
deleted file mode 100644
index a29cfeaf3..000000000
--- a/tests/dictionaries/20override/tmpl/test.service
+++ /dev/null
@@ -1 +0,0 @@
-%%mode_conteneur_actif
diff --git a/tests/dictionaries/20override/tmpl/test2.service b/tests/dictionaries/20override/tmpl/test2.service
deleted file mode 100644
index db665a0e7..000000000
--- a/tests/dictionaries/20override/tmpl/test2.service
+++ /dev/null
@@ -1 +0,0 @@
-{{ mode_conteneur_actif }}
diff --git a/tests/dictionaries/20override_no_templating/makedict/after.json b/tests/dictionaries/20override_no_templating/makedict/after.json
deleted file mode 100644
index d916a90f3..000000000
--- a/tests/dictionaries/20override_no_templating/makedict/after.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.overrides.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/20override_no_templating/makedict/base.json b/tests/dictionaries/20override_no_templating/makedict/base.json
deleted file mode 100644
index 87994e7b0..000000000
--- a/tests/dictionaries/20override_no_templating/makedict/base.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "services.test_service.overrides.test_service.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/20override_no_templating/makedict/before.json b/tests/dictionaries/20override_no_templating/makedict/before.json
deleted file mode 100644
index d916a90f3..000000000
--- a/tests/dictionaries/20override_no_templating/makedict/before.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.overrides.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/20override_no_templating/result/systemd/system/test.service.d/rougail.conf b/tests/dictionaries/20override_no_templating/result/systemd/system/test.service.d/rougail.conf
deleted file mode 100644
index a29cfeaf3..000000000
--- a/tests/dictionaries/20override_no_templating/result/systemd/system/test.service.d/rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-%%mode_conteneur_actif
diff --git a/tests/dictionaries/20override_no_templating/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/20override_no_templating/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/20override_no_templating/tiramisu/base.py b/tests/dictionaries/20override_no_templating/tiramisu/base.py
deleted file mode 100644
index 2bdb6a271..000000000
--- a/tests/dictionaries/20override_no_templating/tiramisu/base.py
+++ /dev/null
@@ -1,40 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="test_service", doc="test.service", children=[option_6])
-optiondescription_5.impl_set_information('engine', "none")
-optiondescription_5.impl_set_information('name', "test.service")
-optiondescription_5.impl_set_information('source', "test.service")
-optiondescription_4 = OptionDescription(name="overrides", doc="overrides", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_10 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_7])
-optiondescription_10.impl_set_information('type', "service")
-optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8, optiondescription_9])
diff --git a/tests/dictionaries/20override_no_templating/tmpl/test.service b/tests/dictionaries/20override_no_templating/tmpl/test.service
deleted file mode 100644
index a29cfeaf3..000000000
--- a/tests/dictionaries/20override_no_templating/tmpl/test.service
+++ /dev/null
@@ -1 +0,0 @@
-%%mode_conteneur_actif
diff --git a/tests/dictionaries/20override_source/makedict/after.json b/tests/dictionaries/20override_source/makedict/after.json
deleted file mode 100644
index d31908827..000000000
--- a/tests/dictionaries/20override_source/makedict/after.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.overrides.test2_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/20override_source/makedict/base.json b/tests/dictionaries/20override_source/makedict/base.json
deleted file mode 100644
index e24f567b8..000000000
--- a/tests/dictionaries/20override_source/makedict/base.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "services.test_service.overrides.test2_service.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/20override_source/makedict/before.json b/tests/dictionaries/20override_source/makedict/before.json
deleted file mode 100644
index d31908827..000000000
--- a/tests/dictionaries/20override_source/makedict/before.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.overrides.test2_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/20override_source/result/systemd/system/test.service.d/rougail.conf b/tests/dictionaries/20override_source/result/systemd/system/test.service.d/rougail.conf
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries/20override_source/result/systemd/system/test.service.d/rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries/20override_source/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/20override_source/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/20override_source/tiramisu/base.py b/tests/dictionaries/20override_source/tiramisu/base.py
deleted file mode 100644
index 24647c9e9..000000000
--- a/tests/dictionaries/20override_source/tiramisu/base.py
+++ /dev/null
@@ -1,39 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="test2_service", doc="test2.service", children=[option_6])
-optiondescription_5.impl_set_information('name', "test.service")
-optiondescription_5.impl_set_information('source', "test2.service")
-optiondescription_4 = OptionDescription(name="overrides", doc="overrides", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_10 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_7])
-optiondescription_10.impl_set_information('type', "service")
-optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8, optiondescription_9])
diff --git a/tests/dictionaries/20override_source/tmpl/test2.service b/tests/dictionaries/20override_source/tmpl/test2.service
deleted file mode 100644
index a29cfeaf3..000000000
--- a/tests/dictionaries/20override_source/tmpl/test2.service
+++ /dev/null
@@ -1 +0,0 @@
-%%mode_conteneur_actif
diff --git a/tests/dictionaries/21family_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/21family_empty/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..b22aea6f9
--- /dev/null
+++ b/tests/dictionaries/21family_empty/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ type: family
+version: '1.0'
diff --git a/tests/dictionaries/21family_empty/tiramisu/base.py b/tests/dictionaries/21family_empty/tiramisu/base.py
index 24934c607..07f3adb7f 100644
--- a/tests/dictionaries/21family_empty/tiramisu/base.py
+++ b/tests/dictionaries/21family_empty/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/21family_empty/tiramisu/multi.py b/tests/dictionaries/21family_empty/tiramisu/multi.py
index d96ffc5a9..676a2a8e9 100644
--- a/tests/dictionaries/21family_empty/tiramisu/multi.py
+++ b/tests/dictionaries/21family_empty/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/21family_empty_sub/dictionaries/rougail/00-base.yml b/tests/dictionaries/21family_empty_sub/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..112b6fcdb
--- /dev/null
+++ b/tests/dictionaries/21family_empty_sub/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ general2:
+ type: family
diff --git a/tests/dictionaries/21family_empty_sub/tiramisu/base.py b/tests/dictionaries/21family_empty_sub/tiramisu/base.py
index 0e5b0ea42..07f3adb7f 100644
--- a/tests/dictionaries/21family_empty_sub/tiramisu/base.py
+++ b/tests/dictionaries/21family_empty_sub/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/21family_empty_sub/tiramisu/multi.py b/tests/dictionaries/21family_empty_sub/tiramisu/multi.py
index e850ec281..97b92cfe5 100644
--- a/tests/dictionaries/21family_empty_sub/tiramisu/multi.py
+++ b/tests/dictionaries/21family_empty_sub/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/22provider_dynamic/tiramisu/base.py b/tests/dictionaries/22provider_dynamic/tiramisu/base.py
deleted file mode 100644
index 9835e1deb..000000000
--- a/tests/dictionaries/22provider_dynamic/tiramisu/base.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
-option_0.impl_set_information('provider:dyn', "rougail.dyn{suffix}.vardyn{suffix}")
diff --git a/tests/dictionaries/22provider_dynamic_2/tiramisu/base.py b/tests/dictionaries/22provider_dynamic_2/tiramisu/base.py
deleted file mode 100644
index 20f59d818..000000000
--- a/tests/dictionaries/22provider_dynamic_2/tiramisu/base.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-from rougail.tiramisu import ConvertDynOptionDescription
-option_1 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_1, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-optiondescription_2 = OptionDescription(name="general", doc="general", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, optiondescription_2], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
-option_0.impl_set_information('provider:dyn', "rougail.general.dyn{suffix}.vardyn{suffix}")
diff --git a/tests/dictionaries/30mandatory_withoutvalue/dictionaries/rougail/00-base.yml b/tests/dictionaries/30mandatory_withoutvalue/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..3390ba5c4
--- /dev/null
+++ b/tests/dictionaries/30mandatory_withoutvalue/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries/30mandatory_withoutvalue/tiramisu/base.py b/tests/dictionaries/30mandatory_withoutvalue/tiramisu/base.py
index cb0d0f113..601725012 100644
--- a/tests/dictionaries/30mandatory_withoutvalue/tiramisu/base.py
+++ b/tests/dictionaries/30mandatory_withoutvalue/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"basic", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"basic"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"basic", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/30mandatory_withoutvalue/tiramisu/multi.py b/tests/dictionaries/30mandatory_withoutvalue/tiramisu/multi.py
index 129b3ee57..0a85defef 100644
--- a/tests/dictionaries/30mandatory_withoutvalue/tiramisu/multi.py
+++ b/tests/dictionaries/30mandatory_withoutvalue/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"basic", "mandatory"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"basic"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"basic", "mandatory"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"basic"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"basic", "mandatory"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"basic"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"basic"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/30mandatory_withoutvaluecalc/dictionaries/rougail/00-base.yml b/tests/dictionaries/30mandatory_withoutvaluecalc/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..665ca03fb
--- /dev/null
+++ b/tests/dictionaries/30mandatory_withoutvaluecalc/dictionaries/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "value" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/base.py b/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/base.py
index f65b8685b..b13c117ff 100644
--- a/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/base.py
+++ b/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,57 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("value")))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/multi.py b/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/multi.py
index 3e3805be4..e01170505 100644
--- a/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/multi.py
+++ b/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("value")))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("value")))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/30mandatory_withvalue/dictionaries/rougail/00-base.yml b/tests/dictionaries/30mandatory_withvalue/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..5b7b86f1f
--- /dev/null
+++ b/tests/dictionaries/30mandatory_withvalue/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: value
+version: '1.0'
diff --git a/tests/dictionaries/30mandatory_withvalue/tiramisu/base.py b/tests/dictionaries/30mandatory_withvalue/tiramisu/base.py
index bb1797092..9049a1dee 100644
--- a/tests/dictionaries/30mandatory_withvalue/tiramisu/base.py
+++ b/tests/dictionaries/30mandatory_withvalue/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="value", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="value", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/30mandatory_withvalue/tiramisu/multi.py b/tests/dictionaries/30mandatory_withvalue/tiramisu/multi.py
index 8bcbe5e84..8a75fa881 100644
--- a/tests/dictionaries/30mandatory_withvalue/tiramisu/multi.py
+++ b/tests/dictionaries/30mandatory_withvalue/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="value", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="value", properties=frozenset({"mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="value", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/30mandatory_withvaluecalc/dictionaries/rougail/00-base.yml b/tests/dictionaries/30mandatory_withvaluecalc/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c40c13623
--- /dev/null
+++ b/tests/dictionaries/30mandatory_withvaluecalc/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "value" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/base.py b/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/base.py
index b7952c849..9f8547deb 100644
--- a/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/base.py
+++ b/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,57 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("value")))), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/multi.py b/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/multi.py
index 6a0e5331d..4a1c85127 100644
--- a/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/multi.py
+++ b/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("value")))), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("value")))), properties=frozenset({"normal"}))
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/40condition_base/dictionaries/rougail/00-base.yml b/tests/dictionaries/40condition_base/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0a4f5ea86
--- /dev/null
+++ b/tests/dictionaries/40condition_base/dictionaries/rougail/00-base.yml
@@ -0,0 +1,31 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/40condition_base/tiramisu/base.py b/tests/dictionaries/40condition_base/tiramisu/base.py
index b96b49b64..46433de98 100644
--- a/tests/dictionaries/40condition_base/tiramisu/base.py
+++ b/tests/dictionaries/40condition_base/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,61 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40condition_base/tiramisu/multi.py b/tests/dictionaries/40condition_base/tiramisu/multi.py
index e8a67e8bf..1fe6b3659 100644
--- a/tests/dictionaries/40condition_base/tiramisu/multi.py
+++ b/tests/dictionaries/40condition_base/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,71 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_9 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_10 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7, option_8, option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+option_7 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_13 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_12)}), help_function=func['jinja_to_property_help'])}))
+option_14 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_12)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11, option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/40condition_base_add/dictionaries/rougail/00-base.yml b/tests/dictionaries/40condition_base_add/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0a4f5ea86
--- /dev/null
+++ b/tests/dictionaries/40condition_base_add/dictionaries/rougail/00-base.yml
@@ -0,0 +1,31 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
diff --git a/tests/dictionaries/40condition_base_add/dictionaries/rougail/01-base.yml b/tests/dictionaries/40condition_base_add/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..d80321891
--- /dev/null
+++ b/tests/dictionaries/40condition_base_add/dictionaries/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ condition:
+ redefine: true
+ hidden: false
+ disabled: false
+ mandatory: false
+version: '1.0'
diff --git a/tests/dictionaries/40condition_base_add/tiramisu/base.py b/tests/dictionaries/40condition_base_add/tiramisu/base.py
index b96b49b64..e60e3249f 100644
--- a/tests/dictionaries/40condition_base_add/tiramisu/base.py
+++ b/tests/dictionaries/40condition_base_add/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,61 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40condition_base_add/tiramisu/multi.py b/tests/dictionaries/40condition_base_add/tiramisu/multi.py
index e8a67e8bf..c7d22f0cd 100644
--- a/tests/dictionaries/40condition_base_add/tiramisu/multi.py
+++ b/tests/dictionaries/40condition_base_add/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,71 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_9 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_10 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7, option_8, option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"normal"}))
+option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+option_7 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_12)}), help_function=func['jinja_to_property_help'])}))
+option_14 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_12)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11, option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/40condition_fallback/tiramisu/base.py b/tests/dictionaries/40condition_fallback/tiramisu/base.py
deleted file mode 100644
index 85184b3a4..000000000
--- a/tests/dictionaries/40condition_fallback/tiramisu/base.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="disabled_family", doc="disabled_family", children=[option_6], properties=frozenset({"disabled", "normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_5], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
diff --git a/tests/dictionaries/40condition_fallback/tmp/base.py b/tests/dictionaries/40condition_fallback/tmp/base.py
new file mode 100644
index 000000000..2c5d43ba7
--- /dev/null
+++ b/tests/dictionaries/40condition_fallback/tmp/base.py
@@ -0,0 +1,75 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value)
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif1'] = "{% if __condition == \"oui\" %}true{% else %}false{% endif %}"
+dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if __condition == \"oui\" %}true{% else %}false{% endif %}"
+dict_env['disabled_rougail.disabled_family'] = "{% if __condition == \"oui\" %}true{% else %}false{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False)}))}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False)}))}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+option_7 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="disabled_family", doc="disabled_family", children=[option_7], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.disabled_family"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False)}))}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40condition_optional/makedict/after.json b/tests/dictionaries/40condition_optional/makedict/after.json
deleted file mode 100644
index e29e8d8e0..000000000
--- a/tests/dictionaries/40condition_optional/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.condition": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.mode_conteneur_actif1": {
- "owner": "default",
- "value": "non"
- }
-}
diff --git a/tests/dictionaries/40condition_optional/makedict/base.json b/tests/dictionaries/40condition_optional/makedict/base.json
deleted file mode 100644
index 0858ba1bc..000000000
--- a/tests/dictionaries/40condition_optional/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "rougail.general.condition": "non",
- "rougail.general.mode_conteneur_actif1": "non"
-}
diff --git a/tests/dictionaries/40condition_optional/makedict/before.json b/tests/dictionaries/40condition_optional/makedict/before.json
deleted file mode 100644
index e29e8d8e0..000000000
--- a/tests/dictionaries/40condition_optional/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.condition": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.mode_conteneur_actif1": {
- "owner": "default",
- "value": "non"
- }
-}
diff --git a/tests/dictionaries/40condition_optional/tiramisu/base.py b/tests/dictionaries/40condition_optional/tiramisu/base.py
deleted file mode 100644
index 1a6ef72e1..000000000
--- a/tests/dictionaries/40condition_optional/tiramisu/base.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/40condition_optional_empty/makedict/after.json b/tests/dictionaries/40condition_optional_empty/makedict/after.json
deleted file mode 100644
index e29e8d8e0..000000000
--- a/tests/dictionaries/40condition_optional_empty/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.condition": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.mode_conteneur_actif1": {
- "owner": "default",
- "value": "non"
- }
-}
diff --git a/tests/dictionaries/40condition_optional_empty/makedict/base.json b/tests/dictionaries/40condition_optional_empty/makedict/base.json
deleted file mode 100644
index 0858ba1bc..000000000
--- a/tests/dictionaries/40condition_optional_empty/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "rougail.general.condition": "non",
- "rougail.general.mode_conteneur_actif1": "non"
-}
diff --git a/tests/dictionaries/40condition_optional_empty/makedict/before.json b/tests/dictionaries/40condition_optional_empty/makedict/before.json
deleted file mode 100644
index e29e8d8e0..000000000
--- a/tests/dictionaries/40condition_optional_empty/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.condition": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.mode_conteneur_actif1": {
- "owner": "default",
- "value": "non"
- }
-}
diff --git a/tests/dictionaries/40condition_optional_empty/tiramisu/base.py b/tests/dictionaries/40condition_optional_empty/tiramisu/base.py
deleted file mode 100644
index 029f14311..000000000
--- a/tests/dictionaries/40condition_optional_empty/tiramisu/base.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/40condition_optional_family/makedict/after.json b/tests/dictionaries/40condition_optional_family/makedict/after.json
deleted file mode 100644
index 5995efe9d..000000000
--- a/tests/dictionaries/40condition_optional_family/makedict/after.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/40condition_optional_family/makedict/base.json b/tests/dictionaries/40condition_optional_family/makedict/base.json
deleted file mode 100644
index 18b52facb..000000000
--- a/tests/dictionaries/40condition_optional_family/makedict/base.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "rougail.condition": true
-}
diff --git a/tests/dictionaries/40condition_optional_family/makedict/before.json b/tests/dictionaries/40condition_optional_family/makedict/before.json
deleted file mode 100644
index 5995efe9d..000000000
--- a/tests/dictionaries/40condition_optional_family/makedict/before.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/40condition_optional_family/tiramisu/base.py b/tests/dictionaries/40condition_optional_family/tiramisu/base.py
deleted file mode 100644
index d0933ad29..000000000
--- a/tests/dictionaries/40condition_optional_family/tiramisu/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
-optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_1, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, optiondescription_2], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
diff --git a/tests/dictionaries/40empty_param/dictionaries/rougail/00_base.yml b/tests/dictionaries/40empty_param/dictionaries/rougail/00_base.yml
new file mode 100644
index 000000000..405f1b112
--- /dev/null
+++ b/tests/dictionaries/40empty_param/dictionaries/rougail/00_base.yml
@@ -0,0 +1,15 @@
+proxy_authentifie:
+ description: proxy authentifié
+ toto1:
+ type: port
+ description: Port d'écoute du proxy
+ mode: expert
+ default:
+ type: jinja
+ jinja: '{{ null | calc_multi_condition }}'
+ toto2:
+ type: port
+ description: Port d'écoute du proxy NTLM
+ mode: expert
+ default: '3127'
+version: '1.0'
diff --git a/tests/dictionaries/40empty_param/tiramisu/base.py b/tests/dictionaries/40empty_param/tiramisu/base.py
index 2e3a9a08f..522db8f8c 100644
--- a/tests/dictionaries/40empty_param/tiramisu/base.py
+++ b/tests/dictionaries/40empty_param/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,58 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((ParamValue(None)))), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
-option_3 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_2, option_3], properties=frozenset({"expert"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_4 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_3, option_4], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40empty_param/tiramisu/multi.py b/tests/dictionaries/40empty_param/tiramisu/multi.py
index 062703b22..e86e7027b 100644
--- a/tests/dictionaries/40empty_param/tiramisu/multi.py
+++ b/tests/dictionaries/40empty_param/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,65 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((ParamValue(None)))), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
-option_3 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_2, option_3], properties=frozenset({"expert"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((ParamValue(None)))), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
-option_6 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
-optiondescription_4 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_5, option_6], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}"
+dict_env['default_2.rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_5 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_4, option_5], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_9 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_10 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_8 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_9, option_10], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"expert"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/40empty_param2/dictionaries/rougail/00_base.yml b/tests/dictionaries/40empty_param2/dictionaries/rougail/00_base.yml
new file mode 100644
index 000000000..405f1b112
--- /dev/null
+++ b/tests/dictionaries/40empty_param2/dictionaries/rougail/00_base.yml
@@ -0,0 +1,15 @@
+proxy_authentifie:
+ description: proxy authentifié
+ toto1:
+ type: port
+ description: Port d'écoute du proxy
+ mode: expert
+ default:
+ type: jinja
+ jinja: '{{ null | calc_multi_condition }}'
+ toto2:
+ type: port
+ description: Port d'écoute du proxy NTLM
+ mode: expert
+ default: '3127'
+version: '1.0'
diff --git a/tests/dictionaries/40empty_param2/tiramisu/base.py b/tests/dictionaries/40empty_param2/tiramisu/base.py
index b12675abd..522db8f8c 100644
--- a/tests/dictionaries/40empty_param2/tiramisu/base.py
+++ b/tests/dictionaries/40empty_param2/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,58 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((), kwargs={'value': ParamValue(None)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
-option_3 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_2, option_3], properties=frozenset({"expert"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_4 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_3, option_4], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40empty_param2/tiramisu/multi.py b/tests/dictionaries/40empty_param2/tiramisu/multi.py
index 32d2464eb..e86e7027b 100644
--- a/tests/dictionaries/40empty_param2/tiramisu/multi.py
+++ b/tests/dictionaries/40empty_param2/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,65 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((), kwargs={'value': ParamValue(None)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
-option_3 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_2, option_3], properties=frozenset({"expert"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((), kwargs={'value': ParamValue(None)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
-option_6 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
-optiondescription_4 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_5, option_6], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}"
+dict_env['default_2.rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_5 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_4, option_5], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_9 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_10 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_8 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_9, option_10], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"expert"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/40family_underscode/dictionaries/rougail/00-base.yml b/tests/dictionaries/40family_underscode/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..24fb31554
--- /dev/null
+++ b/tests/dictionaries/40family_underscode/dictionaries/rougail/00-base.yml
@@ -0,0 +1,33 @@
+---
+version: '1.0'
+my_family:
+ _type: family
+ _description: This is a great family
+ _help: This is a great family
+ _mode: expert
+ _hidden: true
+ _disabled: true
+ type:
+ type: family
+ my_variable:
+ type: variable
+ description:
+ description: This is a other great family
+ my_variable:
+ type: variable
+ help:
+ help: This is a other great family
+ my_variable:
+ type: variable
+ mode:
+ mode: expert
+ my_variable:
+ type: variable
+ hidden:
+ hidden: true
+ my_variable:
+ type: variable
+ disabled:
+ disabled: true
+ my_variable:
+ type: variable
diff --git a/tests/dictionaries/40family_unique_not_same_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/40family_unique_not_same_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..de1df1b2e
--- /dev/null
+++ b/tests/dictionaries/40family_unique_not_same_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,4 @@
+general:
+ general:
+ my_variable: {}
+version: '1.0'
diff --git a/tests/dictionaries/40family_unique_not_same_family/yml/00-base.yml b/tests/dictionaries/40family_unique_not_same_family/yml/00-base.yml
deleted file mode 100644
index 67d9c9c51..000000000
--- a/tests/dictionaries/40family_unique_not_same_family/yml/00-base.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - family:
- - name: general
- variables:
- - variable:
- - name: my_variable
diff --git a/tests/dictionaries/40hidden_if_in_leadership_fallback/tiramisu/base.py b/tests/dictionaries/40hidden_if_in_leadership_fallback/tiramisu/base.py
deleted file mode 100644
index dab2ee5ac..000000000
--- a/tests/dictionaries/40hidden_if_in_leadership_fallback/tiramisu/base.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", multi=True, default=['non'], properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", multi=True, default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal"}))
-optiondescription_3 = Leadership(name="mode_conteneur_actif1", doc="No change", children=[option_4, option_5], properties=frozenset({"hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
diff --git a/tests/dictionaries/40ifin_leadership/dictionaries/rougail/00-base.yml b/tests/dictionaries/40ifin_leadership/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..b0df068c6
--- /dev/null
+++ b/tests/dictionaries/40ifin_leadership/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: condition
+ default: oui
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries/40ifin_leadership/tiramisu/base.py b/tests/dictionaries/40ifin_leadership/tiramisu/base.py
index 6f3ad4054..b06096b91 100644
--- a/tests/dictionaries/40ifin_leadership/tiramisu/base.py
+++ b/tests/dictionaries/40ifin_leadership/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,62 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.leader.follower1'] = "{% if rougail.general.condition == \"oui\" %}true{% else %}false{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40ifin_leadership/tiramisu/multi.py b/tests/dictionaries/40ifin_leadership/tiramisu/multi.py
index 2bf952725..0a6dd4b3f 100644
--- a/tests/dictionaries/40ifin_leadership/tiramisu/multi.py
+++ b/tests/dictionaries/40ifin_leadership/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,33 +17,73 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
-option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_10, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.leader.follower1'] = "{% if rougail.general.condition == \"oui\" %}true{% else %}false{% endif %}"
+dict_env['disabled_2.rougail.general.leader.follower1'] = "{% if rougail.general.condition == \"oui\" %}true{% else %}false{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_14)}), help_function=func['jinja_to_property_help'])}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13, option_14, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/40ifin_leadershipauto/dictionaries/rougail/00-base.yml b/tests/dictionaries/40ifin_leadershipauto/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..b7f06adef
--- /dev/null
+++ b/tests/dictionaries/40ifin_leadershipauto/dictionaries/rougail/00-base.yml
@@ -0,0 +1,36 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: condition
+ default: oui
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - a
+ follower1:
+ type: string
+ description: follower1
+ hidden: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ condition is oui
+ {% endif %}
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
diff --git a/tests/dictionaries/40ifin_leadershipauto/makedict/after.json b/tests/dictionaries/40ifin_leadershipauto/makedict/after.json
index 2824bccf5..85f15c724 100644
--- a/tests/dictionaries/40ifin_leadershipauto/makedict/after.json
+++ b/tests/dictionaries/40ifin_leadershipauto/makedict/after.json
@@ -20,25 +20,5 @@
"value": [
null
]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/40ifin_leadershipauto/makedict/base.json b/tests/dictionaries/40ifin_leadershipauto/makedict/base.json
index 5152a1875..f07975e2e 100644
--- a/tests/dictionaries/40ifin_leadershipauto/makedict/base.json
+++ b/tests/dictionaries/40ifin_leadershipauto/makedict/base.json
@@ -6,10 +6,5 @@
"rougail.general.leader.leader": "a",
"rougail.general.leader.follower2": null
}
- ],
- "services.test_service.files.mailname.name": "/etc/mailname",
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ ]
}
diff --git a/tests/dictionaries/40ifin_leadershipauto/makedict/before.json b/tests/dictionaries/40ifin_leadershipauto/makedict/before.json
index 2824bccf5..85f15c724 100644
--- a/tests/dictionaries/40ifin_leadershipauto/makedict/before.json
+++ b/tests/dictionaries/40ifin_leadershipauto/makedict/before.json
@@ -20,25 +20,5 @@
"value": [
null
]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/40ifin_leadershipauto/tiramisu/base.py b/tests/dictionaries/40ifin_leadershipauto/tiramisu/base.py
index 0985a413a..be24222b4 100644
--- a/tests/dictionaries/40ifin_leadershipauto/tiramisu/base.py
+++ b/tests/dictionaries/40ifin_leadershipauto/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,33 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=['a'], properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_13 = StrOption(name="source", doc="source", default="mailname")
-option_11 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_10 = OptionDescription(name="mailname", doc="mailname", children=[option_12, option_13, option_11])
-optiondescription_9 = OptionDescription(name="files", doc="files", children=[optiondescription_10])
-option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_14 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_17 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_9, option_8, option_14])
-optiondescription_17.impl_set_information('type', "service")
-optiondescription_16 = OptionDescription(name="services", doc="services", children=[optiondescription_17], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_16])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['disabled_rougail.general.leader.follower1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, default=['a'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40ifin_leadershipauto/tiramisu/multi.py b/tests/dictionaries/40ifin_leadershipauto/tiramisu/multi.py
index 111bdc944..b26f32e78 100644
--- a/tests/dictionaries/40ifin_leadershipauto/tiramisu/multi.py
+++ b/tests/dictionaries/40ifin_leadershipauto/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,53 +17,75 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=['a'], properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_30 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_20 = StrOption(name="source", doc="source", default="mailname")
-option_18 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
-optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17])
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_21 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_32 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_21])
-optiondescription_32.impl_set_information('type', "service")
-optiondescription_31 = OptionDescription(name="services", doc="services", children=[optiondescription_32], properties=frozenset({"hidden"}))
-optiondescription_29 = OptionDescription(name="1", doc="1", children=[optiondescription_30, optiondescription_31])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_12 = StrOption(name="leader", doc="leader", multi=True, default=['a'], properties=frozenset({"mandatory", "normal"}))
-option_13 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_10, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_34 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-option_26 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_27 = StrOption(name="source", doc="source", default="mailname")
-option_25 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_24 = OptionDescription(name="mailname", doc="mailname", children=[option_26, option_27, option_25])
-optiondescription_23 = OptionDescription(name="files", doc="files", children=[optiondescription_24])
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-option_28 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_36 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_23, option_22, option_28])
-optiondescription_36.impl_set_information('type', "service")
-optiondescription_35 = OptionDescription(name="services", doc="services", children=[optiondescription_36], properties=frozenset({"hidden"}))
-optiondescription_33 = OptionDescription(name="2", doc="2", children=[optiondescription_34, optiondescription_35])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_29, optiondescription_33])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['disabled_1.rougail.general.leader.follower1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+dict_env['default_2.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['disabled_2.rougail.general.leader.follower1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, default=['a'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, default=['a'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_14)}), help_function=func['jinja_to_property_help'])}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13, option_14, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/40ifin_leadershipauto_follower/dictionaries/rougail/00-base.yml b/tests/dictionaries/40ifin_leadershipauto_follower/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c2182ecd6
--- /dev/null
+++ b/tests/dictionaries/40ifin_leadershipauto_follower/dictionaries/rougail/00-base.yml
@@ -0,0 +1,36 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: condition
+ default: oui
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - a
+ - b
+ follower1:
+ type: string
+ description: follower1
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.leader.leader == "a" %}
+ the value of "leader" is "a"
+ {% endif %}
+ default:
+ type: jinja
+ jinja: '{{ calc_val() }}'
+ follower2:
+ type: string
+ description: follower2
diff --git a/tests/dictionaries/40ifin_leadershipauto_follower/makedict/after.json b/tests/dictionaries/40ifin_leadershipauto_follower/makedict/after.json
index b899df8eb..761b3c38a 100644
--- a/tests/dictionaries/40ifin_leadershipauto_follower/makedict/after.json
+++ b/tests/dictionaries/40ifin_leadershipauto_follower/makedict/after.json
@@ -33,37 +33,5 @@
null,
null
]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/40ifin_leadershipauto_follower/makedict/base.json b/tests/dictionaries/40ifin_leadershipauto_follower/makedict/base.json
index 37749908e..a423f7f03 100644
--- a/tests/dictionaries/40ifin_leadershipauto_follower/makedict/base.json
+++ b/tests/dictionaries/40ifin_leadershipauto_follower/makedict/base.json
@@ -11,13 +11,5 @@
"rougail.general.leader.follower1": null,
"rougail.general.leader.follower2": null
}
- ],
- "services.test_service.files.mailname.name": "/etc/mailname",
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.activate": true,
- "services.test_service.files.mailname2.name": "/etc/mailname2",
- "services.test_service.files.mailname2.source": "mailname2",
- "services.test_service.files.mailname2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ ]
}
diff --git a/tests/dictionaries/40ifin_leadershipauto_follower/makedict/before.json b/tests/dictionaries/40ifin_leadershipauto_follower/makedict/before.json
index b899df8eb..761b3c38a 100644
--- a/tests/dictionaries/40ifin_leadershipauto_follower/makedict/before.json
+++ b/tests/dictionaries/40ifin_leadershipauto_follower/makedict/before.json
@@ -33,37 +33,5 @@
null,
null
]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/base.py b/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/base.py
index 604042b4f..02c609c4a 100644
--- a/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/base.py
+++ b/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,38 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b'], properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_5, notraisepropertyerror=True), 'expected': ParamValue("a")}), func.calc_value_property_help)}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_13 = StrOption(name="source", doc="source", default="mailname")
-option_11 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_10 = OptionDescription(name="mailname", doc="mailname", children=[option_12, option_13, option_11])
-option_16 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_17 = StrOption(name="source", doc="source", default="mailname2")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_14 = OptionDescription(name="mailname2", doc="mailname2", children=[option_16, option_17, option_15])
-optiondescription_14.impl_set_information('engine', "jinja")
-optiondescription_9 = OptionDescription(name="files", doc="files", children=[optiondescription_10, optiondescription_14])
-option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_18 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_21 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_9, option_8, option_18])
-optiondescription_21.impl_set_information('type', "service")
-optiondescription_20 = OptionDescription(name="services", doc="services", children=[optiondescription_21], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_19, optiondescription_20])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.leader.follower1'] = "{{ calc_val() }}"
+dict_env['disabled_rougail.general.leader.follower1'] = "{% if rougail.general.leader.leader == \"a\" %}\nthe value of \"leader\" is \"a\"\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.leader': ParamOption(option_6)}), help_function=func['jinja_to_property_help'])}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/multi.py b/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/multi.py
index e0011275a..c262e66ff 100644
--- a/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/multi.py
+++ b/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,63 +17,75 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b'], properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_5, notraisepropertyerror=True), 'expected': ParamValue("a")}), func.calc_value_property_help)}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_38 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_20 = StrOption(name="source", doc="source", default="mailname")
-option_18 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
-option_23 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_24 = StrOption(name="source", doc="source", default="mailname2")
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_21 = OptionDescription(name="mailname2", doc="mailname2", children=[option_23, option_24, option_22])
-optiondescription_21.impl_set_information('engine', "jinja")
-optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17, optiondescription_21])
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_25 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_40 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_25])
-optiondescription_40.impl_set_information('type', "service")
-optiondescription_39 = OptionDescription(name="services", doc="services", children=[optiondescription_40], properties=frozenset({"hidden"}))
-optiondescription_37 = OptionDescription(name="1", doc="1", children=[optiondescription_38, optiondescription_39])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_10 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_12 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b'], properties=frozenset({"mandatory", "normal"}))
-option_13 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_12, notraisepropertyerror=True), 'expected': ParamValue("a")}), func.calc_value_property_help)}))
-option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_42 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-option_30 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_31 = StrOption(name="source", doc="source", default="mailname")
-option_29 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_28 = OptionDescription(name="mailname", doc="mailname", children=[option_30, option_31, option_29])
-option_34 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_35 = StrOption(name="source", doc="source", default="mailname2")
-option_33 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_32 = OptionDescription(name="mailname2", doc="mailname2", children=[option_34, option_35, option_33])
-optiondescription_32.impl_set_information('engine', "jinja")
-optiondescription_27 = OptionDescription(name="files", doc="files", children=[optiondescription_28, optiondescription_32])
-option_26 = BoolOption(name="activate", doc="activate", default=True)
-option_36 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_44 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_27, option_26, option_36])
-optiondescription_44.impl_set_information('type', "service")
-optiondescription_43 = OptionDescription(name="services", doc="services", children=[optiondescription_44], properties=frozenset({"hidden"}))
-optiondescription_41 = OptionDescription(name="2", doc="2", children=[optiondescription_42, optiondescription_43])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_37, optiondescription_41])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.leader.follower1'] = "{{ calc_val() }}"
+dict_env['disabled_1.rougail.general.leader.follower1'] = "{% if rougail.general.leader.leader == \"a\" %}\nthe value of \"leader\" is \"a\"\n{% endif %}\n"
+dict_env['default_2.rougail.general.leader.follower1'] = "{{ calc_val() }}"
+dict_env['disabled_2.rougail.general.leader.follower1'] = "{% if rougail.general.leader.leader == \"a\" %}\nthe value of \"leader\" is \"a\"\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.leader': ParamOption(option_7)}), help_function=func['jinja_to_property_help'])}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.leader.leader': ParamOption(option_16)}), help_function=func['jinja_to_property_help'])}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13, option_14, optiondescription_15], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/40ifin_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/40ifin_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..53dc6d06f
--- /dev/null
+++ b/tests/dictionaries/40ifin_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,25 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+general2:
+ hidden: true
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general2.mode_conteneur_actif2 == "oui" %}
+ mode_conteneur_actif2 is oui
+ {% endif %}
diff --git a/tests/dictionaries/40ifin_multi/tiramisu/base.py b/tests/dictionaries/40ifin_multi/tiramisu/base.py
index cceb106f0..f4c9d8d4b 100644
--- a/tests/dictionaries/40ifin_multi/tiramisu/base.py
+++ b/tests/dictionaries/40ifin_multi/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_3 = OptionDescription(name="general2", doc="general2", children=[option_4, option_5], properties=frozenset({"hidden", "normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general2.mode_conteneur_actif3'] = "{% if rougail.general2.mode_conteneur_actif2 == \"oui\" %}\nmode_conteneur_actif2 is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general2.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif2': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_4 = OptionDescription(name="general2", doc="general2", children=[option_5, option_6], properties=frozenset({"hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40ifin_multi/tiramisu/multi.py b/tests/dictionaries/40ifin_multi/tiramisu/multi.py
index 04a628bc2..0427ed53c 100644
--- a/tests/dictionaries/40ifin_multi/tiramisu/multi.py
+++ b/tests/dictionaries/40ifin_multi/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_3 = OptionDescription(name="general2", doc="general2", children=[option_4, option_5], properties=frozenset({"hidden", "normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7], properties=frozenset({"normal"}))
-option_9 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_10 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_8 = OptionDescription(name="general2", doc="general2", children=[option_9, option_10], properties=frozenset({"hidden", "normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6, optiondescription_8], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general2.mode_conteneur_actif3'] = "{% if rougail.general2.mode_conteneur_actif2 == \"oui\" %}\nmode_conteneur_actif2 is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general2.mode_conteneur_actif3'] = "{% if rougail.general2.mode_conteneur_actif2 == \"oui\" %}\nmode_conteneur_actif2 is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general2.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif2': ParamOption(option_6)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_5 = OptionDescription(name="general2", doc="general2", children=[option_6, option_7], properties=frozenset({"hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_14 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general2.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif2': ParamOption(option_13)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_12 = OptionDescription(name="general2", doc="general2", children=[option_13, option_14], properties=frozenset({"hidden", "normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10, optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/40ifin_multi2/dictionaries/rougail/00-base.yml b/tests/dictionaries/40ifin_multi2/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..52eeaeb3f
--- /dev/null
+++ b/tests/dictionaries/40ifin_multi2/dictionaries/rougail/00-base.yml
@@ -0,0 +1,25 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+general2:
+ hidden: true
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general2.mode_conteneur_actif2 == "oui" %}
+ mode_conteneur_actif2 is oui
+ {% endif %}
diff --git a/tests/dictionaries/40ifin_multi2/tiramisu/base.py b/tests/dictionaries/40ifin_multi2/tiramisu/base.py
index b70e2a19b..eaa307b60 100644
--- a/tests/dictionaries/40ifin_multi2/tiramisu/base.py
+++ b/tests/dictionaries/40ifin_multi2/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,60 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_3 = OptionDescription(name="general2", doc="general2", children=[option_4, option_5], properties=frozenset({"hidden", "normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general2.mode_conteneur_actif3'] = "{% if rougail.general2.mode_conteneur_actif2 == \"oui\" %}\nmode_conteneur_actif2 is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general2.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif2': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_4 = OptionDescription(name="general2", doc="general2", children=[option_5, option_6], properties=frozenset({"hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40ifin_multi2/tiramisu/multi.py b/tests/dictionaries/40ifin_multi2/tiramisu/multi.py
index 7d0754d5b..ff891ed83 100644
--- a/tests/dictionaries/40ifin_multi2/tiramisu/multi.py
+++ b/tests/dictionaries/40ifin_multi2/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,69 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_3 = OptionDescription(name="general2", doc="general2", children=[option_4, option_5], properties=frozenset({"hidden", "normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7], properties=frozenset({"normal"}))
-option_9 = StrOption(name="mode_conteneur_actif2", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_10 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_8 = OptionDescription(name="general2", doc="general2", children=[option_9, option_10], properties=frozenset({"hidden", "normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6, optiondescription_8], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general2.mode_conteneur_actif3'] = "{% if rougail.general2.mode_conteneur_actif2 == \"oui\" %}\nmode_conteneur_actif2 is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general2.mode_conteneur_actif3'] = "{% if rougail.general2.mode_conteneur_actif2 == \"oui\" %}\nmode_conteneur_actif2 is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general2.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif2': ParamOption(option_6)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_5 = OptionDescription(name="general2", doc="general2", children=[option_6, option_7], properties=frozenset({"hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif2", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_14 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general2.mode_conteneur_actif3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif2': ParamOption(option_13)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_12 = OptionDescription(name="general2", doc="general2", children=[option_13, option_14], properties=frozenset({"hidden", "normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10, optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/40ifin_validenum/dictionaries/rougail/00-base.yml b/tests/dictionaries/40ifin_validenum/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..7ef259366
--- /dev/null
+++ b/tests/dictionaries/40ifin_validenum/dictionaries/rougail/00-base.yml
@@ -0,0 +1,33 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general2.mode_conteneur_actif3 == "d" %}
+ mode_conteneur_actif3 is d
+ {% endif %}
+general2:
+ hidden: true
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general2.mode_conteneur_actif3 != "d" %}
+ mode_conteneur_actif3 is d
+ {% endif %}
+ mode_conteneur_actif3:
+ type: choice
+ description: No change
+ default: a
+ choices:
+ - a
+ - b
+ - c
diff --git a/tests/dictionaries/40ifin_validenum/tiramisu/base.py b/tests/dictionaries/40ifin_validenum/tiramisu/base.py
index a41becda3..e71c201e5 100644
--- a/tests/dictionaries/40ifin_validenum/tiramisu/base.py
+++ b/tests/dictionaries/40ifin_validenum/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,61 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_5 = ChoiceOption(name="mode_conteneur_actif3", doc="No change", values=('a', 'b', 'c'), default="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = OptionDescription(name="general2", doc="general2", children=[option_4, option_5], properties=frozenset({"hidden", "normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general2.mode_conteneur_actif3 == \"d\" %}\nmode_conteneur_actif3 is d\n{% endif %}\n"
+dict_env['disabled_rougail.general2.mode_conteneur_actif2'] = "{% if rougail.general2.mode_conteneur_actif3 != \"d\" %}\nmode_conteneur_actif3 is d\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_6 = ChoiceOption(name="mode_conteneur_actif3", doc="No change", values=("a", "b", "c"), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif3': ParamOption(option_6)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general2.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif3': ParamOption(option_6)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_4 = OptionDescription(name="general2", doc="general2", children=[option_5, option_6], properties=frozenset({"hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40ifin_validenum/tiramisu/multi.py b/tests/dictionaries/40ifin_validenum/tiramisu/multi.py
index 4f7c3450d..f94cfab84 100644
--- a/tests/dictionaries/40ifin_validenum/tiramisu/multi.py
+++ b/tests/dictionaries/40ifin_validenum/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,71 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_5 = ChoiceOption(name="mode_conteneur_actif3", doc="No change", values=('a', 'b', 'c'), default="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = OptionDescription(name="general2", doc="general2", children=[option_4, option_5], properties=frozenset({"hidden", "normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7], properties=frozenset({"normal"}))
-option_9 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_10 = ChoiceOption(name="mode_conteneur_actif3", doc="No change", values=('a', 'b', 'c'), default="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general2", doc="general2", children=[option_9, option_10], properties=frozenset({"hidden", "normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6, optiondescription_8], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general2.mode_conteneur_actif3 == \"d\" %}\nmode_conteneur_actif3 is d\n{% endif %}\n"
+dict_env['disabled_1.rougail.general2.mode_conteneur_actif2'] = "{% if rougail.general2.mode_conteneur_actif3 != \"d\" %}\nmode_conteneur_actif3 is d\n{% endif %}\n"
+dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general2.mode_conteneur_actif3 == \"d\" %}\nmode_conteneur_actif3 is d\n{% endif %}\n"
+dict_env['disabled_2.rougail.general2.mode_conteneur_actif2'] = "{% if rougail.general2.mode_conteneur_actif3 != \"d\" %}\nmode_conteneur_actif3 is d\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_7 = ChoiceOption(name="mode_conteneur_actif3", doc="No change", values=("a", "b", "c"), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif3': ParamOption(option_7)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general2.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif3': ParamOption(option_7)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_5 = OptionDescription(name="general2", doc="general2", children=[option_6, option_7], properties=frozenset({"hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_14 = ChoiceOption(name="mode_conteneur_actif3", doc="No change", values=("a", "b", "c"), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif3': ParamOption(option_14)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11], properties=frozenset({"normal"}))
+option_13 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general2.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif3': ParamOption(option_14)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_12 = OptionDescription(name="general2", doc="general2", children=[option_13, option_14], properties=frozenset({"hidden", "normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10, optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/40space_param/dictionaries/rougail/00_base.yml b/tests/dictionaries/40space_param/dictionaries/rougail/00_base.yml
new file mode 100644
index 000000000..092129092
--- /dev/null
+++ b/tests/dictionaries/40space_param/dictionaries/rougail/00_base.yml
@@ -0,0 +1,15 @@
+proxy_authentifie:
+ description: proxy authentifié
+ toto1:
+ type: port
+ description: Port d'écoute du proxy
+ mode: expert
+ default:
+ type: jinja
+ jinja: '{{ " " | calc_multi_condition }}'
+ toto2:
+ type: port
+ description: Port d'écoute du proxy NTLM
+ mode: expert
+ default: '3127'
+version: '1.0'
diff --git a/tests/dictionaries/40space_param/tiramisu/base.py b/tests/dictionaries/40space_param/tiramisu/base.py
index d7fa7e67a..cf7b69a42 100644
--- a/tests/dictionaries/40space_param/tiramisu/base.py
+++ b/tests/dictionaries/40space_param/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,58 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((ParamValue(" ")))), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
-option_3 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_2, option_3], properties=frozenset({"expert"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.proxy_authentifie.toto1'] = "{{ \" \" | calc_multi_condition }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_4 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_3, option_4], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40space_param/tiramisu/multi.py b/tests/dictionaries/40space_param/tiramisu/multi.py
index 748c236bd..8ebb59381 100644
--- a/tests/dictionaries/40space_param/tiramisu/multi.py
+++ b/tests/dictionaries/40space_param/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,65 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((ParamValue(" ")))), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
-option_3 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
-optiondescription_1 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_2, option_3], properties=frozenset({"expert"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((ParamValue(" ")))), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
-option_6 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
-optiondescription_4 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_5, option_6], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.proxy_authentifie.toto1'] = "{{ \" \" | calc_multi_condition }}"
+dict_env['default_2.rougail.proxy_authentifie.toto1'] = "{{ \" \" | calc_multi_condition }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_5 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_4, option_5], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_9 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_10 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_8 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_9, option_10], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"expert"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/45extra_without_family/dictionaries/extra/00-base.yml b/tests/dictionaries/45extra_without_family/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..83c3caa54
--- /dev/null
+++ b/tests/dictionaries/45extra_without_family/dictionaries/extra/00-base.yml
@@ -0,0 +1,5 @@
+my_var:
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition }}'
+version: '1.0'
diff --git a/tests/dictionaries/45extra_without_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/45extra_without_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..dd35e17ad
--- /dev/null
+++ b/tests/dictionaries/45extra_without_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,3 @@
+my_var:
+ default: rougail
+version: '1.0'
diff --git a/tests/dictionaries/45extra_without_family/makedict/after.json b/tests/dictionaries/45extra_without_family/makedict/after.json
index 36f02f9c9..7ac0f4ec0 100644
--- a/tests/dictionaries/45extra_without_family/makedict/after.json
+++ b/tests/dictionaries/45extra_without_family/makedict/after.json
@@ -6,25 +6,5 @@
"extra.my_var": {
"owner": "default",
"value": null
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/45extra_without_family/makedict/base.json b/tests/dictionaries/45extra_without_family/makedict/base.json
index b97ad3bc0..3665cb170 100644
--- a/tests/dictionaries/45extra_without_family/makedict/base.json
+++ b/tests/dictionaries/45extra_without_family/makedict/base.json
@@ -1,9 +1,4 @@
{
"rougail.my_var": "rougail",
- "extra.my_var": null,
- "services.test_service.files.file.name": "/etc/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "extra.my_var": null
}
diff --git a/tests/dictionaries/45extra_without_family/makedict/before.json b/tests/dictionaries/45extra_without_family/makedict/before.json
index 36f02f9c9..7ac0f4ec0 100644
--- a/tests/dictionaries/45extra_without_family/makedict/before.json
+++ b/tests/dictionaries/45extra_without_family/makedict/before.json
@@ -6,25 +6,5 @@
"extra.my_var": {
"owner": "default",
"value": null
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/45extra_without_family/tiramisu/base.py b/tests/dictionaries/45extra_without_family/tiramisu/base.py
index 5ba5c5ca7..6ce74692b 100644
--- a/tests/dictionaries/45extra_without_family/tiramisu/base.py
+++ b/tests/dictionaries/45extra_without_family/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,58 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="my_var", doc="my_var", default="rougail", properties=frozenset({"mandatory", "normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_2 = StrOption(name="my_var", doc="my_var", default=Calculation(func.calc_multi_condition, Params((ParamValue("non")))), properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="extra", doc="extra", children=[option_2], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_8 = StrOption(name="source", doc="source", default="file")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="file", doc="file", children=[option_7, option_8, option_6])
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_9 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_13 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_9])
-optiondescription_13.impl_set_information('type', "service")
-optiondescription_12 = OptionDescription(name="services", doc="services", children=[optiondescription_13], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_10, optiondescription_11, optiondescription_12])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_extra.my_var'] = "{{ \"non\" | calc_multi_condition }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_2 = StrOption(name="my_var", doc="my_var", default="rougail", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="my_var", doc="my_var", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_extra.my_var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="extra", doc="extra", children=[option_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/45extra_without_family/tiramisu/multi.py b/tests/dictionaries/45extra_without_family/tiramisu/multi.py
index a88ed3c52..9cfdfe284 100644
--- a/tests/dictionaries/45extra_without_family/tiramisu/multi.py
+++ b/tests/dictionaries/45extra_without_family/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,45 +17,65 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="my_var", doc="my_var", default="rougail", properties=frozenset({"mandatory", "normal"}))
-optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_2 = StrOption(name="my_var", doc="my_var", default=Calculation(func.calc_multi_condition, Params((ParamValue("non")))), properties=frozenset({"normal"}))
-optiondescription_21 = OptionDescription(name="extra", doc="extra", children=[option_2], properties=frozenset({"normal"}))
-option_9 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_10 = StrOption(name="source", doc="source", default="file")
-option_8 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_23 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_23.impl_set_information('type', "service")
-optiondescription_22 = OptionDescription(name="services", doc="services", children=[optiondescription_23], properties=frozenset({"hidden"}))
-optiondescription_19 = OptionDescription(name="1", doc="1", children=[optiondescription_20, optiondescription_21, optiondescription_22])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.extra.my_var'] = "{{ \"non\" | calc_multi_condition }}"
+dict_env['default_2.extra.my_var'] = "{{ \"non\" | calc_multi_condition }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="my_var", doc="my_var", default="rougail", properties=frozenset({"mandatory", "normal"}))
-optiondescription_25 = OptionDescription(name="rougail", doc="Rougail", children=[option_3], properties=frozenset({"normal"}))
-option_4 = StrOption(name="my_var", doc="my_var", default=Calculation(func.calc_multi_condition, Params((ParamValue("non")))), properties=frozenset({"normal"}))
-optiondescription_26 = OptionDescription(name="extra", doc="extra", children=[option_4], properties=frozenset({"normal"}))
-option_16 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_17 = StrOption(name="source", doc="source", default="file")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_14 = OptionDescription(name="file", doc="file", children=[option_16, option_17, option_15])
-optiondescription_13 = OptionDescription(name="files", doc="files", children=[optiondescription_14])
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_18 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_28 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_13, option_12, option_18])
-optiondescription_28.impl_set_information('type', "service")
-optiondescription_27 = OptionDescription(name="services", doc="services", children=[optiondescription_28], properties=frozenset({"hidden"}))
-optiondescription_24 = OptionDescription(name="2", doc="2", children=[optiondescription_25, optiondescription_26, optiondescription_27])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_19, optiondescription_24])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="my_var", doc="my_var", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.extra.my_var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_8 = StrOption(name="my_var", doc="my_var", default="rougail", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[option_8], properties=frozenset({"normal"}))
+option_10 = StrOption(name="my_var", doc="my_var", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.extra.my_var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="extra", doc="extra", children=[option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7, optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/45extra_without_family/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries/45extra_without_family/yml/extra_dirs/extra/00-base.yml
deleted file mode 100644
index be4b476ed..000000000
--- a/tests/dictionaries/45extra_without_family/yml/extra_dirs/extra/00-base.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: my_var
-constraints:
-- fill:
- - name: calc_multi_condition
- param:
- - text: non
- target:
- - text: extra.my_var
diff --git a/tests/dictionaries/45multi_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/45multi_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..b64455981
--- /dev/null
+++ b/tests/dictionaries/45multi_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,4 @@
+base:
+ subfamily:
+ variable: {}
+version: '1.0'
diff --git a/tests/dictionaries/45multi_family/tiramisu/base.py b/tests/dictionaries/45multi_family/tiramisu/base.py
index 7412c5fbe..21f575d54 100644
--- a/tests/dictionaries/45multi_family/tiramisu/base.py
+++ b/tests/dictionaries/45multi_family/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
-optiondescription_2 = OptionDescription(name="subfamily", doc="subfamily", children=[option_3], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="base", doc="base", children=[optiondescription_2], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="subfamily", doc="subfamily", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="base", doc="base", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/45multi_family/tiramisu/multi.py b/tests/dictionaries/45multi_family/tiramisu/multi.py
index fdbd7aebb..97e4ee9fa 100644
--- a/tests/dictionaries/45multi_family/tiramisu/multi.py
+++ b/tests/dictionaries/45multi_family/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
-optiondescription_2 = OptionDescription(name="subfamily", doc="subfamily", children=[option_3], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="base", doc="base", children=[optiondescription_2], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_6 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="subfamily", doc="subfamily", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="base", doc="base", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_5 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="subfamily", doc="subfamily", children=[option_5], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="base", doc="base", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="subfamily", doc="subfamily", children=[option_10], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="base", doc="base", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/45multi_family_basic/dictionaries/rougail/00-base.yml b/tests/dictionaries/45multi_family_basic/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..512a20c18
--- /dev/null
+++ b/tests/dictionaries/45multi_family_basic/dictionaries/rougail/00-base.yml
@@ -0,0 +1,5 @@
+base:
+ subfamily:
+ variable:
+ mode: basic
+version: '1.0'
diff --git a/tests/dictionaries/45multi_family_basic/tiramisu/base.py b/tests/dictionaries/45multi_family_basic/tiramisu/base.py
index 1211d4669..51a54d26f 100644
--- a/tests/dictionaries/45multi_family_basic/tiramisu/base.py
+++ b/tests/dictionaries/45multi_family_basic/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"basic"}))
-optiondescription_2 = OptionDescription(name="subfamily", doc="subfamily", children=[option_3], properties=frozenset({"basic"}))
-optiondescription_1 = OptionDescription(name="base", doc="base", children=[optiondescription_2], properties=frozenset({"basic"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"basic"}))
+optiondescription_3 = OptionDescription(name="subfamily", doc="subfamily", children=[option_4], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="base", doc="base", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/45multi_family_basic/tiramisu/multi.py b/tests/dictionaries/45multi_family_basic/tiramisu/multi.py
index 9a9fc8661..87eec264b 100644
--- a/tests/dictionaries/45multi_family_basic/tiramisu/multi.py
+++ b/tests/dictionaries/45multi_family_basic/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"basic"}))
-optiondescription_2 = OptionDescription(name="subfamily", doc="subfamily", children=[option_3], properties=frozenset({"basic"}))
-optiondescription_1 = OptionDescription(name="base", doc="base", children=[optiondescription_2], properties=frozenset({"basic"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_6 = StrOption(name="variable", doc="variable", properties=frozenset({"basic"}))
-optiondescription_5 = OptionDescription(name="subfamily", doc="subfamily", children=[option_6], properties=frozenset({"basic"}))
-optiondescription_4 = OptionDescription(name="base", doc="base", children=[optiondescription_5], properties=frozenset({"basic"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"basic"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_5 = StrOption(name="variable", doc="variable", properties=frozenset({"basic"}))
+optiondescription_4 = OptionDescription(name="subfamily", doc="subfamily", children=[option_5], properties=frozenset({"basic"}))
+optiondescription_3 = OptionDescription(name="base", doc="base", children=[optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_10 = StrOption(name="variable", doc="variable", properties=frozenset({"basic"}))
+optiondescription_9 = OptionDescription(name="subfamily", doc="subfamily", children=[option_10], properties=frozenset({"basic"}))
+optiondescription_8 = OptionDescription(name="base", doc="base", children=[optiondescription_9], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"basic"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/45multi_family_expert/dictionaries/rougail/00-base.yml b/tests/dictionaries/45multi_family_expert/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..30d106591
--- /dev/null
+++ b/tests/dictionaries/45multi_family_expert/dictionaries/rougail/00-base.yml
@@ -0,0 +1,5 @@
+base:
+ mode: expert
+ subfamily:
+ variable: {}
+version: '1.0'
diff --git a/tests/dictionaries/45multi_family_expert/tiramisu/base.py b/tests/dictionaries/45multi_family_expert/tiramisu/base.py
index 06af5ad5e..410469b45 100644
--- a/tests/dictionaries/45multi_family_expert/tiramisu/base.py
+++ b/tests/dictionaries/45multi_family_expert/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"expert"}))
-optiondescription_2 = OptionDescription(name="subfamily", doc="subfamily", children=[option_3], properties=frozenset({"expert"}))
-optiondescription_1 = OptionDescription(name="base", doc="base", children=[optiondescription_2], properties=frozenset({"expert"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"expert"}))
+optiondescription_3 = OptionDescription(name="subfamily", doc="subfamily", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="base", doc="base", children=[optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/45multi_family_expert/tiramisu/multi.py b/tests/dictionaries/45multi_family_expert/tiramisu/multi.py
index 33913f4bb..2584ac701 100644
--- a/tests/dictionaries/45multi_family_expert/tiramisu/multi.py
+++ b/tests/dictionaries/45multi_family_expert/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"expert"}))
-optiondescription_2 = OptionDescription(name="subfamily", doc="subfamily", children=[option_3], properties=frozenset({"expert"}))
-optiondescription_1 = OptionDescription(name="base", doc="base", children=[optiondescription_2], properties=frozenset({"expert"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_6 = StrOption(name="variable", doc="variable", properties=frozenset({"expert"}))
-optiondescription_5 = OptionDescription(name="subfamily", doc="subfamily", children=[option_6], properties=frozenset({"expert"}))
-optiondescription_4 = OptionDescription(name="base", doc="base", children=[optiondescription_5], properties=frozenset({"expert"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"expert"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_5 = StrOption(name="variable", doc="variable", properties=frozenset({"expert"}))
+optiondescription_4 = OptionDescription(name="subfamily", doc="subfamily", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_3 = OptionDescription(name="base", doc="base", children=[optiondescription_4], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_10 = StrOption(name="variable", doc="variable", properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="subfamily", doc="subfamily", children=[option_10], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="base", doc="base", children=[optiondescription_9], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"expert"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/45multi_family_order/dictionaries/rougail/00-base.yml b/tests/dictionaries/45multi_family_order/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..6c0b21cf0
--- /dev/null
+++ b/tests/dictionaries/45multi_family_order/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+variable1: {}
+base:
+ variable2: {}
+ subfamily:
+ variable3: {}
+ variable4: {}
+version: '1.0'
diff --git a/tests/dictionaries/45multi_family_order/tiramisu/base.py b/tests/dictionaries/45multi_family_order/tiramisu/base.py
index 9ed4f8e72..c251e0020 100644
--- a/tests/dictionaries/45multi_family_order/tiramisu/base.py
+++ b/tests/dictionaries/45multi_family_order/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,13 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal"}))
-option_3 = StrOption(name="variable2", doc="variable2", properties=frozenset({"normal"}))
-option_5 = StrOption(name="variable3", doc="variable3", properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="subfamily", doc="subfamily", children=[option_5], properties=frozenset({"normal"}))
-option_6 = StrOption(name="variable4", doc="variable4", properties=frozenset({"normal"}))
-optiondescription_2 = OptionDescription(name="base", doc="base", children=[option_3, optiondescription_4, option_6], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, optiondescription_2], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7])
+option_2 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal"}))
+option_4 = StrOption(name="variable2", doc="variable2", properties=frozenset({"normal"}))
+option_6 = StrOption(name="variable3", doc="variable3", properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="subfamily", doc="subfamily", children=[option_6], properties=frozenset({"normal"}))
+option_7 = StrOption(name="variable4", doc="variable4", properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="base", doc="base", children=[option_4, optiondescription_5, option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/45multi_family_order/tiramisu/multi.py b/tests/dictionaries/45multi_family_order/tiramisu/multi.py
index 3c64b9712..c8e58bc32 100644
--- a/tests/dictionaries/45multi_family_order/tiramisu/multi.py
+++ b/tests/dictionaries/45multi_family_order/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,22 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal"}))
-option_3 = StrOption(name="variable2", doc="variable2", properties=frozenset({"normal"}))
-option_5 = StrOption(name="variable3", doc="variable3", properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="subfamily", doc="subfamily", children=[option_5], properties=frozenset({"normal"}))
-option_6 = StrOption(name="variable4", doc="variable4", properties=frozenset({"normal"}))
-optiondescription_2 = OptionDescription(name="base", doc="base", children=[option_3, optiondescription_4, option_6], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, optiondescription_2], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
-option_7 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal"}))
-option_9 = StrOption(name="variable2", doc="variable2", properties=frozenset({"normal"}))
-option_11 = StrOption(name="variable3", doc="variable3", properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="subfamily", doc="subfamily", children=[option_11], properties=frozenset({"normal"}))
-option_12 = StrOption(name="variable4", doc="variable4", properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="base", doc="base", children=[option_9, optiondescription_10, option_12], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[option_7, optiondescription_8], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
+option_3 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal"}))
+option_5 = StrOption(name="variable2", doc="variable2", properties=frozenset({"normal"}))
+option_7 = StrOption(name="variable3", doc="variable3", properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="subfamily", doc="subfamily", children=[option_7], properties=frozenset({"normal"}))
+option_8 = StrOption(name="variable4", doc="variable4", properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="base", doc="base", children=[option_5, optiondescription_6, option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal"}))
+option_13 = StrOption(name="variable2", doc="variable2", properties=frozenset({"normal"}))
+option_15 = StrOption(name="variable3", doc="variable3", properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="subfamily", doc="subfamily", children=[option_15], properties=frozenset({"normal"}))
+option_16 = StrOption(name="variable4", doc="variable4", properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="base", doc="base", children=[option_13, optiondescription_14, option_16], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[option_11, optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/45without_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/45without_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..32911c123
--- /dev/null
+++ b/tests/dictionaries/45without_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,2 @@
+variable: {}
+version: '1.0'
diff --git a/tests/dictionaries/45without_family/tiramisu/base.py b/tests/dictionaries/45without_family/tiramisu/base.py
index 7106e847b..3c2c64452 100644
--- a/tests/dictionaries/45without_family/tiramisu/base.py
+++ b/tests/dictionaries/45without_family/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,17 +17,8 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
-optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_2])
+option_2 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/45without_family/tiramisu/multi.py b/tests/dictionaries/45without_family/tiramisu/multi.py
index dfd6cb29a..832200811 100644
--- a/tests/dictionaries/45without_family/tiramisu/multi.py
+++ b/tests/dictionaries/45without_family/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="1", doc="1", children=[optiondescription_4])
-option_2 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3, optiondescription_5])
+option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="rougail", doc="rougail", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="2", doc="2", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/50exists_exists/dictionaries/rougail/00-base.yml b/tests/dictionaries/50exists_exists/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..98b2ee4ba
--- /dev/null
+++ b/tests/dictionaries/50exists_exists/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/50exists_exists/dictionaries/rougail/01-base.yml b/tests/dictionaries/50exists_exists/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..5942a802a
--- /dev/null
+++ b/tests/dictionaries/50exists_exists/dictionaries/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: New description
+ exists: false
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries/50exists_exists/tiramisu/base.py b/tests/dictionaries/50exists_exists/tiramisu/base.py
index a729cdeef..a1e637bfe 100644
--- a/tests/dictionaries/50exists_exists/tiramisu/base.py
+++ b/tests/dictionaries/50exists_exists/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/50exists_exists/tiramisu/multi.py b/tests/dictionaries/50exists_exists/tiramisu/multi.py
index 83aa99a96..34dc98352 100644
--- a/tests/dictionaries/50exists_exists/tiramisu/multi.py
+++ b/tests/dictionaries/50exists_exists/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/50redefine_description/dictionaries/rougail/00-base.yml b/tests/dictionaries/50redefine_description/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..da1ea3c58
--- /dev/null
+++ b/tests/dictionaries/50redefine_description/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/50redefine_description/dictionaries/rougail/01-redefine.yml b/tests/dictionaries/50redefine_description/dictionaries/rougail/01-redefine.yml
new file mode 100644
index 000000000..24ab230e5
--- /dev/null
+++ b/tests/dictionaries/50redefine_description/dictionaries/rougail/01-redefine.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ description: Redefined
+version: '1.0'
diff --git a/tests/dictionaries/50redefine_description/tiramisu/base.py b/tests/dictionaries/50redefine_description/tiramisu/base.py
index bb48c7339..6b5875018 100644
--- a/tests/dictionaries/50redefine_description/tiramisu/base.py
+++ b/tests/dictionaries/50redefine_description/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefined", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefined", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/50redefine_description/tiramisu/multi.py b/tests/dictionaries/50redefine_description/tiramisu/multi.py
index dc3fc4ed7..856102497 100644
--- a/tests/dictionaries/50redefine_description/tiramisu/multi.py
+++ b/tests/dictionaries/50redefine_description/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefined", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="Redefined", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefined", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/51exists_nonexists/dictionaries/rougail/00-base.yml b/tests/dictionaries/51exists_nonexists/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f3ac44820
--- /dev/null
+++ b/tests/dictionaries/51exists_nonexists/dictionaries/rougail/00-base.yml
@@ -0,0 +1,11 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: Description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/51exists_nonexists/dictionaries/rougail/01-base.yml b/tests/dictionaries/51exists_nonexists/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..4ebe57964
--- /dev/null
+++ b/tests/dictionaries/51exists_nonexists/dictionaries/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif2:
+ type: string
+ description: New description
+ exists: false
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries/51exists_nonexists/tiramisu/base.py b/tests/dictionaries/51exists_nonexists/tiramisu/base.py
index db5e1c125..0b1ec3229 100644
--- a/tests/dictionaries/51exists_nonexists/tiramisu/base.py
+++ b/tests/dictionaries/51exists_nonexists/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,11 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="New description", default="oui", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="New description", default="oui", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51exists_nonexists/tiramisu/multi.py b/tests/dictionaries/51exists_nonexists/tiramisu/multi.py
index 3ecf9c7e9..c996a7c2d 100644
--- a/tests/dictionaries/51exists_nonexists/tiramisu/multi.py
+++ b/tests/dictionaries/51exists_nonexists/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,18 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="New description", default="oui", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode_conteneur_actif1", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="New description", default="oui", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="New description", default="oui", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="mode_conteneur_actif1", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="New description", default="oui", properties=frozenset({"mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/51exists_redefine/dictionaries/rougail/00-base.yml b/tests/dictionaries/51exists_redefine/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..98b2ee4ba
--- /dev/null
+++ b/tests/dictionaries/51exists_redefine/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/51exists_redefine/dictionaries/rougail/01-base.yml b/tests/dictionaries/51exists_redefine/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..238b1bb47
--- /dev/null
+++ b/tests/dictionaries/51exists_redefine/dictionaries/rougail/01-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ exists: true
+ default: oui
+ mode_conteneur_actif1:
+ redefine: true
+ exists: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries/51exists_redefine/tiramisu/base.py b/tests/dictionaries/51exists_redefine/tiramisu/base.py
index 0962ea27d..51699ed56 100644
--- a/tests/dictionaries/51exists_redefine/tiramisu/base.py
+++ b/tests/dictionaries/51exists_redefine/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51exists_redefine/tiramisu/multi.py b/tests/dictionaries/51exists_redefine/tiramisu/multi.py
index 9712639f6..4d84ff12e 100644
--- a/tests/dictionaries/51exists_redefine/tiramisu/multi.py
+++ b/tests/dictionaries/51exists_redefine/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/51redefine_auto/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_auto/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..a30a45a99
--- /dev/null
+++ b/tests/dictionaries/51redefine_auto/dictionaries/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_auto/dictionaries/rougail/01-base.yml b/tests/dictionaries/51redefine_auto/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..3dd4c3524
--- /dev/null
+++ b/tests/dictionaries/51redefine_auto/dictionaries/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | concat }}'
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_auto/tiramisu/base.py b/tests/dictionaries/51redefine_auto/tiramisu/base.py
index d1d7373a3..ef39da467 100644
--- a/tests/dictionaries/51redefine_auto/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_auto/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,57 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_auto/tiramisu/multi.py b/tests/dictionaries/51redefine_auto/tiramisu/multi.py
index d498b9969..5fcc321cd 100644
--- a/tests/dictionaries/51redefine_auto/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_auto/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/51redefine_autofill/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_autofill/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4bd6a838b
--- /dev/null
+++ b/tests/dictionaries/51redefine_autofill/dictionaries/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "oui" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_autofill/dictionaries/rougail/01-base.yml b/tests/dictionaries/51redefine_autofill/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..5fe628160
--- /dev/null
+++ b/tests/dictionaries/51redefine_autofill/dictionaries/rougail/01-base.yml
@@ -0,0 +1,8 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ hidden: false
+ default:
+ type: jinja
+ jinja: '{{ "non" | concat }}'
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_autofill/tiramisu/base.py b/tests/dictionaries/51redefine_autofill/tiramisu/base.py
index dc967fdcb..8181ccd8e 100644
--- a/tests/dictionaries/51redefine_autofill/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_autofill/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,57 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_autofill/tiramisu/multi.py b/tests/dictionaries/51redefine_autofill/tiramisu/multi.py
index 19c79d37a..6a3f1602c 100644
--- a/tests/dictionaries/51redefine_autofill/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_autofill/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"normal"}))
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/51redefine_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..96a6e829e
--- /dev/null
+++ b/tests/dictionaries/51redefine_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,21 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+general2:
+ hidden: true
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.mode_conteneur_actif == "oui" %}
+ mode_conteneur_actif is oui
+ {% endif %}
diff --git a/tests/dictionaries/51redefine_family/dictionaries/rougail/01-base.yml b/tests/dictionaries/51redefine_family/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..84dcc917c
--- /dev/null
+++ b/tests/dictionaries/51redefine_family/dictionaries/rougail/01-base.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_family/tiramisu/base.py b/tests/dictionaries/51redefine_family/tiramisu/base.py
index 88755320b..b3a694db0 100644
--- a/tests/dictionaries/51redefine_family/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_family/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,59 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_3 = OptionDescription(name="general2", doc="general2", children=[option_4], properties=frozenset({"hidden", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_rougail.general2'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general2", doc="general2", children=[option_5], properties=frozenset({"hidden", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_family/tiramisu/multi.py b/tests/dictionaries/51redefine_family/tiramisu/multi.py
index f86eeacb6..d8c15792e 100644
--- a/tests/dictionaries/51redefine_family/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_family/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_3 = OptionDescription(name="general2", doc="general2", children=[option_4], properties=frozenset({"hidden", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"normal"}))
-option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_7 = OptionDescription(name="general2", doc="general2", children=[option_8], properties=frozenset({"hidden", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.rougail.general2'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n"
+dict_env['disabled_2.rougail.general2'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general2", doc="general2", children=[option_6], properties=frozenset({"hidden", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"normal"}))
+option_12 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_11 = OptionDescription(name="general2", doc="general2", children=[option_12], properties=frozenset({"hidden", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.general2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_10)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/51redefine_fill/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_fill/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4bd6a838b
--- /dev/null
+++ b/tests/dictionaries/51redefine_fill/dictionaries/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "oui" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_fill/dictionaries/rougail/01-base.yml b/tests/dictionaries/51redefine_fill/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..3dd4c3524
--- /dev/null
+++ b/tests/dictionaries/51redefine_fill/dictionaries/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | concat }}'
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_fill/tiramisu/base.py b/tests/dictionaries/51redefine_fill/tiramisu/base.py
index d1d7373a3..ef39da467 100644
--- a/tests/dictionaries/51redefine_fill/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_fill/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,57 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_fill/tiramisu/multi.py b/tests/dictionaries/51redefine_fill/tiramisu/multi.py
index d498b9969..5fcc321cd 100644
--- a/tests/dictionaries/51redefine_fill/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_fill/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/51redefine_fillauto/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_fillauto/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..2408964ed
--- /dev/null
+++ b/tests/dictionaries/51redefine_fillauto/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "oui" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_fillauto/dictionaries/rougail/01-base.yml b/tests/dictionaries/51redefine_fillauto/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..df07c6509
--- /dev/null
+++ b/tests/dictionaries/51redefine_fillauto/dictionaries/rougail/01-base.yml
@@ -0,0 +1,8 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | concat }}'
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_fillauto/tiramisu/base.py b/tests/dictionaries/51redefine_fillauto/tiramisu/base.py
index d1d7373a3..ef39da467 100644
--- a/tests/dictionaries/51redefine_fillauto/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_fillauto/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,57 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_fillauto/tiramisu/multi.py b/tests/dictionaries/51redefine_fillauto/tiramisu/multi.py
index d498b9969..5fcc321cd 100644
--- a/tests/dictionaries/51redefine_fillauto/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_fillauto/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/51redefine_help/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_help/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..82e0cbe88
--- /dev/null
+++ b/tests/dictionaries/51redefine_help/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+---
+version: '1.0'
+general:
+ help: redefine help family
+ mode_conteneur_actif:
+ type: string
+ description: redefine help
+ hidden: true
+ help: redefine help
+ default: non
diff --git a/tests/dictionaries/51redefine_help/dictionaries/rougail/01-base.yml b/tests/dictionaries/51redefine_help/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..04e5a572f
--- /dev/null
+++ b/tests/dictionaries/51redefine_help/dictionaries/rougail/01-base.yml
@@ -0,0 +1,10 @@
+---
+version: '1.0'
+general:
+ redefine: true
+ help: redefine help family ok
+ mode_conteneur_actif:
+ redefine: true
+ hidden: true
+ help: redefine help ok
+ default: non
diff --git a/tests/dictionaries/51redefine_help/tiramisu/base.py b/tests/dictionaries/51redefine_help/tiramisu/base.py
index 31e60762e..a548422a3 100644
--- a/tests/dictionaries/51redefine_help/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_help/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,20 +17,11 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2.impl_set_information('help', "redefine help ok")
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_1.impl_set_information('help', "redefine help family ok")
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3.impl_set_information('help', "redefine help ok")
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_2.impl_set_information('help', "redefine help family ok")
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_help/tiramisu/multi.py b/tests/dictionaries/51redefine_help/tiramisu/multi.py
index 10a016d66..064c3ae09 100644
--- a/tests/dictionaries/51redefine_help/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_help/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,27 +17,18 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2.impl_set_information('help', "redefine help ok")
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_1.impl_set_information('help', "redefine help family ok")
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_4.impl_set_information('help', "redefine help ok")
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
optiondescription_3.impl_set_information('help', "redefine help family ok")
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_8.impl_set_information('help', "redefine help ok")
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_7.impl_set_information('help', "redefine help family ok")
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/51redefine_hidden/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_hidden/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..01b94adff
--- /dev/null
+++ b/tests/dictionaries/51redefine_hidden/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine hidden
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_hidden/dictionaries/rougail/01-redefine.yml b/tests/dictionaries/51redefine_hidden/dictionaries/rougail/01-redefine.yml
new file mode 100644
index 000000000..a98fe3a5a
--- /dev/null
+++ b/tests/dictionaries/51redefine_hidden/dictionaries/rougail/01-redefine.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ hidden: true
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_hidden/tiramisu/base.py b/tests/dictionaries/51redefine_hidden/tiramisu/base.py
index 175a6e850..78a60db2a 100644
--- a/tests/dictionaries/51redefine_hidden/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_hidden/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_hidden/tiramisu/multi.py b/tests/dictionaries/51redefine_hidden/tiramisu/multi.py
index a6e2a62b5..e3091d430 100644
--- a/tests/dictionaries/51redefine_hidden/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_hidden/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/51redefine_hidden_inverse/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_hidden_inverse/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..709c26c30
--- /dev/null
+++ b/tests/dictionaries/51redefine_hidden_inverse/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine hidden
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_hidden_inverse/dictionaries/rougail/01-redefine.yml b/tests/dictionaries/51redefine_hidden_inverse/dictionaries/rougail/01-redefine.yml
new file mode 100644
index 000000000..b695912b8
--- /dev/null
+++ b/tests/dictionaries/51redefine_hidden_inverse/dictionaries/rougail/01-redefine.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ hidden: false
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_hidden_inverse/tiramisu/base.py b/tests/dictionaries/51redefine_hidden_inverse/tiramisu/base.py
index 1056d3922..7d7508ac0 100644
--- a/tests/dictionaries/51redefine_hidden_inverse/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_hidden_inverse/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_hidden_inverse/tiramisu/multi.py b/tests/dictionaries/51redefine_hidden_inverse/tiramisu/multi.py
index 043f8dd4f..7fcaa34ba 100644
--- a/tests/dictionaries/51redefine_hidden_inverse/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_hidden_inverse/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/51redefine_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..a0d8d32af
--- /dev/null
+++ b/tests/dictionaries/51redefine_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: non
diff --git a/tests/dictionaries/51redefine_multi/dictionaries/rougail/01-redefine.yml b/tests/dictionaries/51redefine_multi/dictionaries/rougail/01-redefine.yml
new file mode 100644
index 000000000..cf1082232
--- /dev/null
+++ b/tests/dictionaries/51redefine_multi/dictionaries/rougail/01-redefine.yml
@@ -0,0 +1,8 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ redefine: true
+ multi: true
+ default:
+ - non
diff --git a/tests/dictionaries/51redefine_multi/tiramisu/base.py b/tests/dictionaries/51redefine_multi/tiramisu/base.py
index 5fc55cc43..7da3c2ff7 100644
--- a/tests/dictionaries/51redefine_multi/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_multi/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_multi/tiramisu/multi.py b/tests/dictionaries/51redefine_multi/tiramisu/multi.py
index 4b92ec1d2..98c29c4f4 100644
--- a/tests/dictionaries/51redefine_multi/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_multi/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notempty"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/51redefine_remove_condition/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_remove_condition/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f3480810d
--- /dev/null
+++ b/tests/dictionaries/51redefine_remove_condition/dictionaries/rougail/00-base.yml
@@ -0,0 +1,36 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ true
+ {% else %}
+ false
+ {% endif %}
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: |
+ {% if rougail.general.condition == "oui" %}
+ true
+ {% else %}
+ false
+ {% endif %}
diff --git a/tests/dictionaries/51redefine_remove_condition/dictionaries/rougail/01-base.yml b/tests/dictionaries/51redefine_remove_condition/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..c73de3632
--- /dev/null
+++ b/tests/dictionaries/51redefine_remove_condition/dictionaries/rougail/01-base.yml
@@ -0,0 +1,9 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif1:
+ redefine: true
+ disabled: false
+ mode_conteneur_actif2:
+ redefine: true
+ disabled: false
diff --git a/tests/dictionaries/51redefine_remove_condition/tiramisu/base.py b/tests/dictionaries/51redefine_remove_condition/tiramisu/base.py
index ff92fb48f..22ecf9849 100644
--- a/tests/dictionaries/51redefine_remove_condition/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_remove_condition/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_remove_condition/tiramisu/multi.py b/tests/dictionaries/51redefine_remove_condition/tiramisu/multi.py
index a297535ed..1834416da 100644
--- a/tests/dictionaries/51redefine_remove_condition/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_remove_condition/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_9 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_10 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7, option_8, option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_13 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_14 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11, option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/51redefine_remove_condition_filelist/tiramisu/base.py b/tests/dictionaries/51redefine_remove_condition_filelist/tiramisu/base.py
deleted file mode 100644
index 8a9721d1a..000000000
--- a/tests/dictionaries/51redefine_remove_condition_filelist/tiramisu/base.py
+++ /dev/null
@@ -1,42 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_10 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_11 = StrOption(name="source", doc="source", default="file")
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_8 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_9])
-optiondescription_7 = OptionDescription(name="files", doc="files", children=[optiondescription_8])
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-option_12 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_15 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_7, option_6, option_12])
-optiondescription_15.impl_set_information('type', "service")
-optiondescription_14 = OptionDescription(name="services", doc="services", children=[optiondescription_15], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_14])
diff --git a/tests/dictionaries/51redefine_removecondition_nonautofreeze/makedict/after.json b/tests/dictionaries/51redefine_removecondition_nonautofreeze/makedict/after.json
deleted file mode 100644
index 4f0c7f291..000000000
--- a/tests/dictionaries/51redefine_removecondition_nonautofreeze/makedict/after.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "rougail.my_var": {
- "owner": "forced",
- "value": "no"
- },
- "rougail.condition": {
- "owner": "default",
- "value": "no"
- },
- "rougail.my_var1": {
- "owner": "default",
- "value": "no"
- },
- "rougail.my_var2": {
- "owner": "default",
- "value": "no"
- },
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries/51redefine_removecondition_nonautofreeze/makedict/base.json b/tests/dictionaries/51redefine_removecondition_nonautofreeze/makedict/base.json
deleted file mode 100644
index 6f3ba3488..000000000
--- a/tests/dictionaries/51redefine_removecondition_nonautofreeze/makedict/base.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "rougail.my_var": "no",
- "rougail.condition": "no",
- "rougail.my_var1": "no",
- "rougail.my_var2": "no",
- "rougail.server_deployed": false
-}
diff --git a/tests/dictionaries/51redefine_removecondition_nonautofreeze/makedict/before.json b/tests/dictionaries/51redefine_removecondition_nonautofreeze/makedict/before.json
deleted file mode 100644
index 7e322dd68..000000000
--- a/tests/dictionaries/51redefine_removecondition_nonautofreeze/makedict/before.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "rougail.my_var": {
- "owner": "default",
- "value": "no"
- },
- "rougail.condition": {
- "owner": "default",
- "value": "no"
- },
- "rougail.my_var1": {
- "owner": "default",
- "value": "no"
- },
- "rougail.my_var2": {
- "owner": "default",
- "value": "no"
- },
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries/51redefine_removecondition_nonautofreeze/tiramisu/base.py b/tests/dictionaries/51redefine_removecondition_nonautofreeze/tiramisu/base.py
deleted file mode 100644
index c847559cd..000000000
--- a/tests/dictionaries/51redefine_removecondition_nonautofreeze/tiramisu/base.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_5 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"hidden", "mandatory", "normal"}))
-option_1 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_5, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-option_2 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3, option_4, option_5], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6])
diff --git a/tests/dictionaries/51redefine_validenum/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_validenum/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..fef3650ba
--- /dev/null
+++ b/tests/dictionaries/51redefine_validenum/dictionaries/rougail/00-base.yml
@@ -0,0 +1,11 @@
+general:
+ mode_conteneur_actif:
+ type: choice
+ description: Redefine description
+ hidden: true
+ default: a
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_validenum/dictionaries/rougail/01-redefine.yml b/tests/dictionaries/51redefine_validenum/dictionaries/rougail/01-redefine.yml
new file mode 100644
index 000000000..8babcec2f
--- /dev/null
+++ b/tests/dictionaries/51redefine_validenum/dictionaries/rougail/01-redefine.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ validators: null
+ default: a
+ choices:
+ - a
+ - b
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_validenum/tiramisu/base.py b/tests/dictionaries/51redefine_validenum/tiramisu/base.py
index a21034e86..dc7bfaec6 100644
--- a/tests/dictionaries/51redefine_validenum/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_validenum/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="mode_conteneur_actif", doc="Redefine description", values=('a', 'b'), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = ChoiceOption(name="mode_conteneur_actif", doc="Redefine description", values=("a", "b"), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_validenum/tiramisu/multi.py b/tests/dictionaries/51redefine_validenum/tiramisu/multi.py
index 8ad7153cd..678a4b12a 100644
--- a/tests/dictionaries/51redefine_validenum/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_validenum/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = ChoiceOption(name="mode_conteneur_actif", doc="Redefine description", values=('a', 'b'), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = ChoiceOption(name="mode_conteneur_actif", doc="Redefine description", values=('a', 'b'), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = ChoiceOption(name="mode_conteneur_actif", doc="Redefine description", values=("a", "b"), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = ChoiceOption(name="mode_conteneur_actif", doc="Redefine description", values=("a", "b"), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/51redefine_value/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_value/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..74c33aee8
--- /dev/null
+++ b/tests/dictionaries/51redefine_value/dictionaries/rougail/00-base.yml
@@ -0,0 +1,11 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine value
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: Redefine value
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_value/dictionaries/rougail/01-redefine.yml b/tests/dictionaries/51redefine_value/dictionaries/rougail/01-redefine.yml
new file mode 100644
index 000000000..c9908834d
--- /dev/null
+++ b/tests/dictionaries/51redefine_value/dictionaries/rougail/01-redefine.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif1:
+ redefine: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_value/tiramisu/base.py b/tests/dictionaries/51redefine_value/tiramisu/base.py
index 01cc1c3a7..956519ec9 100644
--- a/tests/dictionaries/51redefine_value/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_value/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine value", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="Redefine value", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine value", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="Redefine value", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_value/tiramisu/multi.py b/tests/dictionaries/51redefine_value/tiramisu/multi.py
index fe18720ab..b6beba714 100644
--- a/tests/dictionaries/51redefine_value/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_value/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine value", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="Redefine value", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = StrOption(name="mode_conteneur_actif", doc="Redefine value", default="non", properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="mode_conteneur_actif1", doc="Redefine value", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine value", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="Redefine value", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="Redefine value", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="Redefine value", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/51redefine_without_hidden/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_without_hidden/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..709c26c30
--- /dev/null
+++ b/tests/dictionaries/51redefine_without_hidden/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine hidden
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_without_hidden/dictionaries/rougail/01-redefine.yml b/tests/dictionaries/51redefine_without_hidden/dictionaries/rougail/01-redefine.yml
new file mode 100644
index 000000000..7c59b7f2b
--- /dev/null
+++ b/tests/dictionaries/51redefine_without_hidden/dictionaries/rougail/01-redefine.yml
@@ -0,0 +1,4 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+version: '1.0'
diff --git a/tests/dictionaries/51redefine_without_hidden/tiramisu/base.py b/tests/dictionaries/51redefine_without_hidden/tiramisu/base.py
index 175a6e850..78a60db2a 100644
--- a/tests/dictionaries/51redefine_without_hidden/tiramisu/base.py
+++ b/tests/dictionaries/51redefine_without_hidden/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_without_hidden/tiramisu/multi.py b/tests/dictionaries/51redefine_without_hidden/tiramisu/multi.py
index a6e2a62b5..e3091d430 100644
--- a/tests/dictionaries/51redefine_without_hidden/tiramisu/multi.py
+++ b/tests/dictionaries/51redefine_without_hidden/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/51remove_fill/dictionaries/rougail/00-base.yml b/tests/dictionaries/51remove_fill/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..edd147a51
--- /dev/null
+++ b/tests/dictionaries/51remove_fill/dictionaries/rougail/00-base.yml
@@ -0,0 +1,14 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: |
+ {{ rougail.general.mode_conteneur_actif1 | calc_val }}
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
diff --git a/tests/dictionaries/51remove_fill/dictionaries/rougail/01-base.yml b/tests/dictionaries/51remove_fill/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..f179d9505
--- /dev/null
+++ b/tests/dictionaries/51remove_fill/dictionaries/rougail/01-base.yml
@@ -0,0 +1,6 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ redefine: true
+ default: oui
diff --git a/tests/dictionaries/51remove_fill/tiramisu/base.py b/tests/dictionaries/51remove_fill/tiramisu/base.py
index 2969d3916..01bc96a16 100644
--- a/tests/dictionaries/51remove_fill/tiramisu/base.py
+++ b/tests/dictionaries/51remove_fill/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,19 +17,10 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51remove_fill/tiramisu/multi.py b/tests/dictionaries/51remove_fill/tiramisu/multi.py
index 1e6d06443..1491cdd1b 100644
--- a/tests/dictionaries/51remove_fill/tiramisu/multi.py
+++ b/tests/dictionaries/51remove_fill/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
-option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/52exists_redefine/dictionaries/rougail/00-base.yml b/tests/dictionaries/52exists_redefine/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..fcc9ec7c6
--- /dev/null
+++ b/tests/dictionaries/52exists_redefine/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ hidden: true
+ default: oui
diff --git a/tests/dictionaries/52exists_redefine/dictionaries/rougail/01-base.yml b/tests/dictionaries/52exists_redefine/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..c4ce6062e
--- /dev/null
+++ b/tests/dictionaries/52exists_redefine/dictionaries/rougail/01-base.yml
@@ -0,0 +1,8 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ description: New description
+ exists: false
+ redefine: true
+ default: non
diff --git a/tests/dictionaries/52exists_redefine/makedict/after.json b/tests/dictionaries/52exists_redefine/makedict/after.json
index 2e6c541d0..3a4c09536 100644
--- a/tests/dictionaries/52exists_redefine/makedict/after.json
+++ b/tests/dictionaries/52exists_redefine/makedict/after.json
@@ -1,6 +1,6 @@
{
"rougail.general.mode_conteneur_actif": {
"owner": "default",
- "value": "non"
+ "value": "oui"
}
}
diff --git a/tests/dictionaries/52exists_redefine/makedict/base.json b/tests/dictionaries/52exists_redefine/makedict/base.json
index 25056378d..50112b177 100644
--- a/tests/dictionaries/52exists_redefine/makedict/base.json
+++ b/tests/dictionaries/52exists_redefine/makedict/base.json
@@ -1,3 +1,3 @@
{
- "rougail.general.mode_conteneur_actif": "non"
+ "rougail.general.mode_conteneur_actif": "oui"
}
diff --git a/tests/dictionaries/52exists_redefine/makedict/before.json b/tests/dictionaries/52exists_redefine/makedict/before.json
index 2e6c541d0..3a4c09536 100644
--- a/tests/dictionaries/52exists_redefine/makedict/before.json
+++ b/tests/dictionaries/52exists_redefine/makedict/before.json
@@ -1,6 +1,6 @@
{
"rougail.general.mode_conteneur_actif": {
"owner": "default",
- "value": "non"
+ "value": "oui"
}
}
diff --git a/tests/dictionaries/52exists_redefine/tiramisu/base.py b/tests/dictionaries/52exists_redefine/tiramisu/base.py
index 517001976..51699ed56 100644
--- a/tests/dictionaries/52exists_redefine/tiramisu/base.py
+++ b/tests/dictionaries/52exists_redefine/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,18 +17,9 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="New description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
+option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/52exists_redefine/tiramisu/multi.py b/tests/dictionaries/52exists_redefine/tiramisu/multi.py
index 3d05a8281..4d84ff12e 100644
--- a/tests/dictionaries/52exists_redefine/tiramisu/multi.py
+++ b/tests/dictionaries/52exists_redefine/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,23 +17,14 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="New description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
-option_4 = StrOption(name="mode_conteneur_actif", doc="New description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/60action_external/dictionaries/extra/00-base.yml b/tests/dictionaries/60action_external/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..0019b91e9
--- /dev/null
+++ b/tests/dictionaries/60action_external/dictionaries/extra/00-base.yml
@@ -0,0 +1,13 @@
+test:
+ delay:
+ type: number
+ description: délai en minutes avant lancement
+ default: 0
+ calc_url:
+ type: web_address
+ description: domain
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "http://localhost/" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/60action_external/dictionaries/rougail/00-base.yml b/tests/dictionaries/60action_external/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1085cc1cc
--- /dev/null
+++ b/tests/dictionaries/60action_external/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60action_external/tiramisu/base.py b/tests/dictionaries/60action_external/tiramisu/base.py
index abff63b56..c6a515289 100644
--- a/tests/dictionaries/60action_external/tiramisu/base.py
+++ b/tests/dictionaries/60action_external/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,61 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
-option_5 = URLOption(name="calc_url", doc="domain", default=Calculation(func.calc_val, Params((ParamValue("http://localhost/")))), allow_ip=True, allow_without_dot=True, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_3 = OptionDescription(name="test", doc="test", children=[option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6, optiondescription_7])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_extra.test.calc_url'] = "{{ \"http://localhost/\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+option_7 = URLOption(name="calc_url", doc="domain", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_extra.test.calc_url"), '__internal_type': ParamValue("web_address"), '__internal_multi': ParamValue(False)})), allow_ip=True, allow_without_dot=True, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_5 = OptionDescription(name="test", doc="test", children=[option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/60action_external/tiramisu/multi.py b/tests/dictionaries/60action_external/tiramisu/multi.py
index 377038444..fe077504f 100644
--- a/tests/dictionaries/60action_external/tiramisu/multi.py
+++ b/tests/dictionaries/60action_external/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,71 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
-option_5 = URLOption(name="calc_url", doc="domain", default=Calculation(func.calc_val, Params((ParamValue("http://localhost/")))), allow_ip=True, allow_without_dot=True, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_3 = OptionDescription(name="test", doc="test", children=[option_4, option_5], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12, optiondescription_13])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_6 = OptionDescription(name="general", doc="général", children=[option_7], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
-option_9 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
-option_10 = URLOption(name="calc_url", doc="domain", default=Calculation(func.calc_val, Params((ParamValue("http://localhost/")))), allow_ip=True, allow_without_dot=True, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-optiondescription_8 = OptionDescription(name="test", doc="test", children=[option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_8], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="2", doc="2", children=[optiondescription_15, optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_14])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.extra.test.calc_url'] = "{{ \"http://localhost/\" | calc_val }}"
+dict_env['default_2.extra.test.calc_url'] = "{{ \"http://localhost/\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_7 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+option_8 = URLOption(name="calc_url", doc="domain", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.extra.test.calc_url"), '__internal_type': ParamValue("web_address"), '__internal_multi': ParamValue(False)})), allow_ip=True, allow_without_dot=True, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_6 = OptionDescription(name="test", doc="test", children=[option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_5], properties=frozenset({"normal"}))
+option_12 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_11 = OptionDescription(name="general", doc="général", children=[option_12], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_15 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+option_16 = URLOption(name="calc_url", doc="domain", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.extra.test.calc_url"), '__internal_type': ParamValue("web_address"), '__internal_multi': ParamValue(False)})), allow_ip=True, allow_without_dot=True, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_14 = OptionDescription(name="test", doc="test", children=[option_15, option_16], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="extra", doc="extra", children=[optiondescription_14], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10, optiondescription_13], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/60extra_basic/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_basic/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..4ff97856b
--- /dev/null
+++ b/tests/dictionaries/60extra_basic/dictionaries/extra/00-base.yml
@@ -0,0 +1,30 @@
+ejabberd:
+ description:
+ type: string
+ mode: basic
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__activer_ejabberd, match="none",
+ mismatch="daily") }}'
+ params:
+ __activer_ejabberd:
+ type: variable
+ variable: rougail.general.activer_ejabberd
+ propertyerror: false
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries/60extra_basic/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_basic/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries/60extra_basic/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60extra_basic/tiramisu/base.py b/tests/dictionaries/60extra_basic/tiramisu/base.py
index 53b8d0323..5734b0611 100644
--- a/tests/dictionaries/60extra_basic/tiramisu/base.py
+++ b/tests/dictionaries/60extra_basic/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,24 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"basic", "mandatory"}))
-option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"basic"}))
-optiondescription_9 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8, optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"basic", "mandatory"}))
+option_8 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_4, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"basic"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/60extra_basic/tiramisu/multi.py b/tests/dictionaries/60extra_basic/tiramisu/multi.py
index 1a6c830e4..dc68d830d 100644
--- a/tests/dictionaries/60extra_basic/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_basic/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,35 +17,75 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"basic", "mandatory"}))
-option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"basic"}))
-optiondescription_17 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"basic"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16, optiondescription_17])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-option_12 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"basic", "mandatory"}))
-option_13 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_10, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_14 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_12, option_13, option_14], properties=frozenset({"basic"}))
-optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"basic"}))
-optiondescription_18 = OptionDescription(name="2", doc="2", children=[optiondescription_19, optiondescription_20])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_18])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+dict_env['default_2.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"basic", "mandatory"}))
+option_9 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_5, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_10 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"basic"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_6], properties=frozenset({"basic"}))
+option_14 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_15 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="general", doc="général", children=[option_14, option_15], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13], properties=frozenset({"normal"}))
+option_18 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"basic", "mandatory"}))
+option_19 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_15, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_20 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_17 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_18, option_19, option_20], properties=frozenset({"basic"}))
+optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_17], properties=frozenset({"basic"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12, optiondescription_16], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/60extra_externalspacecondition/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_externalspacecondition/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..baea1b1af
--- /dev/null
+++ b/tests/dictionaries/60extra_externalspacecondition/dictionaries/extra/00-base.yml
@@ -0,0 +1,22 @@
+---
+version: '1.0'
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default: none
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
diff --git a/tests/dictionaries/60extra_externalspacecondition/dictionaries/extra1/00-base.yml b/tests/dictionaries/60extra_externalspacecondition/dictionaries/extra1/00-base.yml
new file mode 100644
index 000000000..ea3c10fa3
--- /dev/null
+++ b/tests/dictionaries/60extra_externalspacecondition/dictionaries/extra1/00-base.yml
@@ -0,0 +1,12 @@
+---
+version: '1.0'
+external:
+ description:
+ type: string
+ default: test
+ disabled:
+ type: jinja
+ jinja: |
+ {% if extra.ejabberd.description == "non" %}
+ description is non
+ {% endif %}
diff --git a/tests/dictionaries/60extra_externalspacecondition/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_externalspacecondition/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..8a059d038
--- /dev/null
+++ b/tests/dictionaries/60extra_externalspacecondition/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+---
+version: '1.0'
+general:
+ description: général
+ my_var:
+ default: 'no'
+ my_var1:
+ hidden: true
+ default: 'no'
+ server_deployed:
+ type: boolean
+ hidden: true
+ default: false
diff --git a/tests/dictionaries/60extra_externalspacecondition/makedict/after.json b/tests/dictionaries/60extra_externalspacecondition/makedict/after.json
index b2dd92d11..c979ff36a 100644
--- a/tests/dictionaries/60extra_externalspacecondition/makedict/after.json
+++ b/tests/dictionaries/60extra_externalspacecondition/makedict/after.json
@@ -1,6 +1,6 @@
{
"rougail.general.my_var": {
- "owner": "forced",
+ "owner": "default",
"value": "no"
},
"rougail.general.my_var1": {
diff --git a/tests/dictionaries/60extra_externalspacecondition/tiramisu/base.py b/tests/dictionaries/60extra_externalspacecondition/tiramisu/base.py
index 82820ba11..19759c022 100644
--- a/tests/dictionaries/60extra_externalspacecondition/tiramisu/base.py
+++ b/tests/dictionaries/60extra_externalspacecondition/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,28 +17,67 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_4 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"hidden", "mandatory", "normal"}))
-option_2 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-option_3 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3, option_4], properties=frozenset({"basic"}))
-optiondescription_11 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-option_6 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default="none", properties=frozenset({"mandatory", "normal"}))
-option_8 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_10 = StrOption(name="description", doc="description", default="test", properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = OptionDescription(name="external", doc="external", children=[option_10], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_13 = OptionDescription(name="extra1", doc="extra1", children=[optiondescription_9], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_12, optiondescription_13])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_extra1.external'] = "{% if extra.ejabberd.description == \"non\" %}\ndescription is non\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default="none", properties=frozenset({"mandatory", "normal"}))
+option_10 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_13 = StrOption(name="description", doc="description", default="test", properties=frozenset({"mandatory", "normal"}))
+optiondescription_12 = OptionDescription(name="external", doc="external", children=[option_13], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_extra1.external"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'extra.ejabberd.description': ParamOption(option_8)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_11 = OptionDescription(name="extra1", doc="extra1", children=[optiondescription_12], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6, optiondescription_11])
diff --git a/tests/dictionaries/60extra_externalspacecondition/tiramisu/multi.py b/tests/dictionaries/60extra_externalspacecondition/tiramisu/multi.py
index d0b77a119..f5dba452e 100644
--- a/tests/dictionaries/60extra_externalspacecondition/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_externalspacecondition/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,43 +17,83 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_4 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"hidden", "mandatory", "normal"}))
-option_2 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-option_3 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3, option_4], properties=frozenset({"basic"}))
-optiondescription_22 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
-option_6 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default="none", properties=frozenset({"mandatory", "normal"}))
-option_8 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_23 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_10 = StrOption(name="description", doc="description", default="test", properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = OptionDescription(name="external", doc="external", children=[option_10], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_24 = OptionDescription(name="extra1", doc="extra1", children=[optiondescription_9], properties=frozenset({"normal"}))
-optiondescription_21 = OptionDescription(name="1", doc="1", children=[optiondescription_22, optiondescription_23, optiondescription_24])
-option_14 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"hidden", "mandatory", "normal"}))
-option_12 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_14, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-option_13 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_11 = OptionDescription(name="general", doc="général", children=[option_12, option_13, option_14], properties=frozenset({"basic"}))
-optiondescription_26 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_11], properties=frozenset({"basic"}))
-option_16 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_17 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default="none", properties=frozenset({"mandatory", "normal"}))
-option_18 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_15 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_16, option_17, option_18], properties=frozenset({"normal"}))
-optiondescription_27 = OptionDescription(name="extra", doc="extra", children=[optiondescription_15], properties=frozenset({"normal"}))
-option_20 = StrOption(name="description", doc="description", default="test", properties=frozenset({"mandatory", "normal"}))
-optiondescription_19 = OptionDescription(name="external", doc="external", children=[option_20], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_16, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
-optiondescription_28 = OptionDescription(name="extra1", doc="extra1", children=[optiondescription_19], properties=frozenset({"normal"}))
-optiondescription_25 = OptionDescription(name="2", doc="2", children=[optiondescription_26, optiondescription_27, optiondescription_28])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_21, optiondescription_25])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['disabled_1.extra1.external'] = "{% if extra.ejabberd.description == \"non\" %}\ndescription is non\n{% endif %}\n"
+dict_env['disabled_2.extra1.external'] = "{% if extra.ejabberd.description == \"non\" %}\ndescription is non\n{% endif %}\n"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_9 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_10 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default="none", properties=frozenset({"mandatory", "normal"}))
+option_11 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_9, option_10, option_11], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="extra", doc="extra", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_14 = StrOption(name="description", doc="description", default="test", properties=frozenset({"mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="external", doc="external", children=[option_14], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.extra1.external"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'extra.ejabberd.description': ParamOption(option_9)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_12 = OptionDescription(name="extra1", doc="extra1", children=[optiondescription_13], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_7, optiondescription_12], properties=frozenset({"normal"}))
+option_18 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"mandatory", "normal"}))
+option_19 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_20 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_17 = OptionDescription(name="general", doc="général", children=[option_18, option_19, option_20], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_17], properties=frozenset({"normal"}))
+option_23 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_24 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default="none", properties=frozenset({"mandatory", "normal"}))
+option_25 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_22 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_23, option_24, option_25], properties=frozenset({"normal"}))
+optiondescription_21 = OptionDescription(name="extra", doc="extra", children=[optiondescription_22], properties=frozenset({"normal"}))
+option_28 = StrOption(name="description", doc="description", default="test", properties=frozenset({"mandatory", "normal"}))
+optiondescription_27 = OptionDescription(name="external", doc="external", children=[option_28], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.extra1.external"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'extra.ejabberd.description': ParamOption(option_23)}), help_function=func['jinja_to_property_help'])}))
+optiondescription_26 = OptionDescription(name="extra1", doc="extra1", children=[optiondescription_27], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16, optiondescription_21, optiondescription_26], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_15])
diff --git a/tests/dictionaries/60extra_help/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_help/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..e510a60a9
--- /dev/null
+++ b/tests/dictionaries/60extra_help/dictionaries/extra/00-base.yml
@@ -0,0 +1,30 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ help: Test help
+ mandatory: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__activer_ejabberd, match="none",
+ mismatch="daily") }}'
+ params:
+ __activer_ejabberd:
+ type: variable
+ variable: rougail.general.activer_ejabberd
+ propertyerror: false
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries/60extra_help/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_help/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries/60extra_help/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60extra_help/makedict/after.json b/tests/dictionaries/60extra_help/makedict/after.json
index 4d90e3cdf..383ce0931 100644
--- a/tests/dictionaries/60extra_help/makedict/after.json
+++ b/tests/dictionaries/60extra_help/makedict/after.json
@@ -18,25 +18,5 @@
"extra.ejabberd.mode": {
"owner": "default",
"value": "pre"
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/60extra_help/makedict/base.json b/tests/dictionaries/60extra_help/makedict/base.json
index 64b003ac6..242a818de 100644
--- a/tests/dictionaries/60extra_help/makedict/base.json
+++ b/tests/dictionaries/60extra_help/makedict/base.json
@@ -3,10 +3,5 @@
"rougail.general.activer_ejabberd": "non",
"extra.ejabberd.description": "Exportation de la base de ejabberd",
"extra.ejabberd.day": null,
- "extra.ejabberd.mode": "pre",
- "services.test_service.files.mailname.name": "/etc/mailname",
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ "extra.ejabberd.mode": "pre"
}
diff --git a/tests/dictionaries/60extra_help/makedict/before.json b/tests/dictionaries/60extra_help/makedict/before.json
index 4d90e3cdf..383ce0931 100644
--- a/tests/dictionaries/60extra_help/makedict/before.json
+++ b/tests/dictionaries/60extra_help/makedict/before.json
@@ -18,25 +18,5 @@
"extra.ejabberd.mode": {
"owner": "default",
"value": "pre"
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/60extra_help/tiramisu/base.py b/tests/dictionaries/60extra_help/tiramisu/base.py
index 003d999c1..51e7e8e05 100644
--- a/tests/dictionaries/60extra_help/tiramisu/base.py
+++ b/tests/dictionaries/60extra_help/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,35 +17,64 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_6.impl_set_information('help', "Test help")
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_13 = StrOption(name="source", doc="source", default="mailname")
-option_11 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_10 = OptionDescription(name="mailname", doc="mailname", children=[option_12, option_13, option_11])
-optiondescription_9 = OptionDescription(name="files", doc="files", children=[optiondescription_10])
-option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_14 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_18 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_9, option_8, option_14])
-optiondescription_18.impl_set_information('type', "service")
-optiondescription_17 = OptionDescription(name="services", doc="services", children=[optiondescription_18], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_16, optiondescription_17])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_8 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_4, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_8.impl_set_information('help', "Test help")
+option_9 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/60extra_help/tiramisu/multi.py b/tests/dictionaries/60extra_help/tiramisu/multi.py
index 5d5e0b29c..b1c85414c 100644
--- a/tests/dictionaries/60extra_help/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_help/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,57 +17,77 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_30 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_6.impl_set_information('help', "Test help")
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_31 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_20 = StrOption(name="source", doc="source", default="mailname")
-option_18 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
-optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17])
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_21 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_33 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_21])
-optiondescription_33.impl_set_information('type', "service")
-optiondescription_32 = OptionDescription(name="services", doc="services", children=[optiondescription_33], properties=frozenset({"hidden"}))
-optiondescription_29 = OptionDescription(name="1", doc="1", children=[optiondescription_30, optiondescription_31, optiondescription_32])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_35 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-option_12 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_13 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_10, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_13.impl_set_information('help', "Test help")
-option_14 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_36 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
-option_26 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_27 = StrOption(name="source", doc="source", default="mailname")
-option_25 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_24 = OptionDescription(name="mailname", doc="mailname", children=[option_26, option_27, option_25])
-optiondescription_23 = OptionDescription(name="files", doc="files", children=[optiondescription_24])
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-option_28 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_38 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_23, option_22, option_28])
-optiondescription_38.impl_set_information('type', "service")
-optiondescription_37 = OptionDescription(name="services", doc="services", children=[optiondescription_38], properties=frozenset({"hidden"}))
-optiondescription_34 = OptionDescription(name="2", doc="2", children=[optiondescription_35, optiondescription_36, optiondescription_37])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_29, optiondescription_34])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+dict_env['default_2.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_5, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_9.impl_set_information('help', "Test help")
+option_10 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_15 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="general", doc="général", children=[option_14, option_15], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13], properties=frozenset({"normal"}))
+option_18 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_19 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_15, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_19.impl_set_information('help', "Test help")
+option_20 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_17 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_18, option_19, option_20], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_17], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12, optiondescription_16], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/60extra_leadership/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_leadership/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..eacf9828e
--- /dev/null
+++ b/tests/dictionaries/60extra_leadership/dictionaries/extra/00-base.yml
@@ -0,0 +1,13 @@
+ejabberd:
+ leadership:
+ type: leadership
+ _description: description
+ description:
+ type: string
+ multi: true
+ default:
+ - test
+ mode:
+ type: string
+ default: pre
+version: '1.0'
diff --git a/tests/dictionaries/60extra_leadership/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_leadership/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries/60extra_leadership/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60extra_leadership/makedict/after.json b/tests/dictionaries/60extra_leadership/makedict/after.json
index fc88064cd..efe0f4a99 100644
--- a/tests/dictionaries/60extra_leadership/makedict/after.json
+++ b/tests/dictionaries/60extra_leadership/makedict/after.json
@@ -20,37 +20,5 @@
"value": [
"pre"
]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/60extra_leadership/makedict/base.json b/tests/dictionaries/60extra_leadership/makedict/base.json
index 2f4e5aa56..3c10bab59 100644
--- a/tests/dictionaries/60extra_leadership/makedict/base.json
+++ b/tests/dictionaries/60extra_leadership/makedict/base.json
@@ -6,13 +6,5 @@
"extra.ejabberd.leadership.description": "test",
"extra.ejabberd.leadership.mode": "pre"
}
- ],
- "services.test_service.files.mailname.name": "/etc/mailname",
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.activate": true,
- "services.test_service.files.mailname2.name": "/etc/mailname2",
- "services.test_service.files.mailname2.source": "mailname2",
- "services.test_service.files.mailname2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ ]
}
diff --git a/tests/dictionaries/60extra_leadership/makedict/before.json b/tests/dictionaries/60extra_leadership/makedict/before.json
index fc88064cd..efe0f4a99 100644
--- a/tests/dictionaries/60extra_leadership/makedict/before.json
+++ b/tests/dictionaries/60extra_leadership/makedict/before.json
@@ -20,37 +20,5 @@
"value": [
"pre"
]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/60extra_leadership/tiramisu/base.py b/tests/dictionaries/60extra_leadership/tiramisu/base.py
index 16ad2e1bb..52205ceeb 100644
--- a/tests/dictionaries/60extra_leadership/tiramisu/base.py
+++ b/tests/dictionaries/60extra_leadership/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,39 +17,15 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = Leadership(name="leadership", doc="description", children=[option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_13 = StrOption(name="source", doc="source", default="mailname")
-option_11 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_10 = OptionDescription(name="mailname", doc="mailname", children=[option_12, option_13, option_11])
-option_16 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_17 = StrOption(name="source", doc="source", default="mailname2")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_14 = OptionDescription(name="mailname2", doc="mailname2", children=[option_16, option_17, option_15])
-optiondescription_14.impl_set_information('engine', "jinja")
-optiondescription_9 = OptionDescription(name="files", doc="files", children=[optiondescription_10, optiondescription_14])
-option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_18 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_22 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_9, option_8, option_18])
-optiondescription_22.impl_set_information('type', "service")
-optiondescription_21 = OptionDescription(name="services", doc="services", children=[optiondescription_22], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_19, optiondescription_20, optiondescription_21])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_9 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = Leadership(name="leadership", doc="description", children=[option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/60extra_leadership/tiramisu/multi.py b/tests/dictionaries/60extra_leadership/tiramisu/multi.py
index b434f9136..cc432ee28 100644
--- a/tests/dictionaries/60extra_leadership/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_leadership/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,65 +17,26 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_38 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = Leadership(name="leadership", doc="description", children=[option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_39 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_20 = StrOption(name="source", doc="source", default="mailname")
-option_18 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
-option_23 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_24 = StrOption(name="source", doc="source", default="mailname2")
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_21 = OptionDescription(name="mailname2", doc="mailname2", children=[option_23, option_24, option_22])
-optiondescription_21.impl_set_information('engine', "jinja")
-optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17, optiondescription_21])
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_25 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_41 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_25])
-optiondescription_41.impl_set_information('type', "service")
-optiondescription_40 = OptionDescription(name="services", doc="services", children=[optiondescription_41], properties=frozenset({"hidden"}))
-optiondescription_37 = OptionDescription(name="1", doc="1", children=[optiondescription_38, optiondescription_39, optiondescription_40])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_43 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-option_13 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
-option_14 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_12 = Leadership(name="leadership", doc="description", children=[option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_12], properties=frozenset({"normal"}))
-optiondescription_44 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
-option_30 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_31 = StrOption(name="source", doc="source", default="mailname")
-option_29 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_28 = OptionDescription(name="mailname", doc="mailname", children=[option_30, option_31, option_29])
-option_34 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_35 = StrOption(name="source", doc="source", default="mailname2")
-option_33 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_32 = OptionDescription(name="mailname2", doc="mailname2", children=[option_34, option_35, option_33])
-optiondescription_32.impl_set_information('engine', "jinja")
-optiondescription_27 = OptionDescription(name="files", doc="files", children=[optiondescription_28, optiondescription_32])
-option_26 = BoolOption(name="activate", doc="activate", default=True)
-option_36 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_46 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_27, option_26, option_36])
-optiondescription_46.impl_set_information('type', "service")
-optiondescription_45 = OptionDescription(name="services", doc="services", children=[optiondescription_46], properties=frozenset({"hidden"}))
-optiondescription_42 = OptionDescription(name="2", doc="2", children=[optiondescription_43, optiondescription_44, optiondescription_45])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_37, optiondescription_42])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_9 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_10 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = Leadership(name="leadership", doc="description", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_15 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="general", doc="général", children=[option_14, option_15], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13], properties=frozenset({"normal"}))
+option_19 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_20 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_18 = Leadership(name="leadership", doc="description", children=[option_19, option_20], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_18], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_17], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12, optiondescription_16], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/60extra_leadership_name/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_leadership_name/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..d3a06a971
--- /dev/null
+++ b/tests/dictionaries/60extra_leadership_name/dictionaries/extra/00-base.yml
@@ -0,0 +1,13 @@
+ejabberd:
+ new_name:
+ type: leadership
+ _description: new_name
+ description:
+ type: string
+ multi: true
+ default:
+ - test
+ mode:
+ type: string
+ default: pre
+version: '1.0'
diff --git a/tests/dictionaries/60extra_leadership_name/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_leadership_name/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries/60extra_leadership_name/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60extra_leadership_name/makedict/after.json b/tests/dictionaries/60extra_leadership_name/makedict/after.json
index bd4006b97..0c3ab5035 100644
--- a/tests/dictionaries/60extra_leadership_name/makedict/after.json
+++ b/tests/dictionaries/60extra_leadership_name/makedict/after.json
@@ -20,37 +20,5 @@
"value": [
"pre"
]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/60extra_leadership_name/makedict/base.json b/tests/dictionaries/60extra_leadership_name/makedict/base.json
index 13e7ece30..0d7dadf09 100644
--- a/tests/dictionaries/60extra_leadership_name/makedict/base.json
+++ b/tests/dictionaries/60extra_leadership_name/makedict/base.json
@@ -6,13 +6,5 @@
"extra.ejabberd.new_name.description": "test",
"extra.ejabberd.new_name.mode": "pre"
}
- ],
- "services.test_service.files.mailname.name": "/etc/mailname",
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.activate": true,
- "services.test_service.files.mailname2.name": "/etc/mailname2",
- "services.test_service.files.mailname2.source": "mailname2",
- "services.test_service.files.mailname2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ ]
}
diff --git a/tests/dictionaries/60extra_leadership_name/makedict/before.json b/tests/dictionaries/60extra_leadership_name/makedict/before.json
index bd4006b97..0c3ab5035 100644
--- a/tests/dictionaries/60extra_leadership_name/makedict/before.json
+++ b/tests/dictionaries/60extra_leadership_name/makedict/before.json
@@ -20,37 +20,5 @@
"value": [
"pre"
]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/60extra_leadership_name/tiramisu/base.py b/tests/dictionaries/60extra_leadership_name/tiramisu/base.py
index e21c2371f..1a95e44b2 100644
--- a/tests/dictionaries/60extra_leadership_name/tiramisu/base.py
+++ b/tests/dictionaries/60extra_leadership_name/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,39 +17,15 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = Leadership(name="new_name", doc="new_name", children=[option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_13 = StrOption(name="source", doc="source", default="mailname")
-option_11 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_10 = OptionDescription(name="mailname", doc="mailname", children=[option_12, option_13, option_11])
-option_16 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_17 = StrOption(name="source", doc="source", default="mailname2")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_14 = OptionDescription(name="mailname2", doc="mailname2", children=[option_16, option_17, option_15])
-optiondescription_14.impl_set_information('engine', "jinja")
-optiondescription_9 = OptionDescription(name="files", doc="files", children=[optiondescription_10, optiondescription_14])
-option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_18 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_22 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_9, option_8, option_18])
-optiondescription_22.impl_set_information('type', "service")
-optiondescription_21 = OptionDescription(name="services", doc="services", children=[optiondescription_22], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_19, optiondescription_20, optiondescription_21])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_9 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = Leadership(name="new_name", doc="new_name", children=[option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/60extra_leadership_name/tiramisu/multi.py b/tests/dictionaries/60extra_leadership_name/tiramisu/multi.py
index 4c800df8d..6899edad6 100644
--- a/tests/dictionaries/60extra_leadership_name/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_leadership_name/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,65 +17,26 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_38 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = Leadership(name="new_name", doc="new_name", children=[option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_39 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_20 = StrOption(name="source", doc="source", default="mailname")
-option_18 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
-option_23 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_24 = StrOption(name="source", doc="source", default="mailname2")
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_21 = OptionDescription(name="mailname2", doc="mailname2", children=[option_23, option_24, option_22])
-optiondescription_21.impl_set_information('engine', "jinja")
-optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17, optiondescription_21])
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_25 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_41 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_25])
-optiondescription_41.impl_set_information('type', "service")
-optiondescription_40 = OptionDescription(name="services", doc="services", children=[optiondescription_41], properties=frozenset({"hidden"}))
-optiondescription_37 = OptionDescription(name="1", doc="1", children=[optiondescription_38, optiondescription_39, optiondescription_40])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_43 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-option_13 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
-option_14 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_12 = Leadership(name="new_name", doc="new_name", children=[option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_12], properties=frozenset({"normal"}))
-optiondescription_44 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
-option_30 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_31 = StrOption(name="source", doc="source", default="mailname")
-option_29 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_28 = OptionDescription(name="mailname", doc="mailname", children=[option_30, option_31, option_29])
-option_34 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_35 = StrOption(name="source", doc="source", default="mailname2")
-option_33 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_32 = OptionDescription(name="mailname2", doc="mailname2", children=[option_34, option_35, option_33])
-optiondescription_32.impl_set_information('engine', "jinja")
-optiondescription_27 = OptionDescription(name="files", doc="files", children=[optiondescription_28, optiondescription_32])
-option_26 = BoolOption(name="activate", doc="activate", default=True)
-option_36 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_46 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_27, option_26, option_36])
-optiondescription_46.impl_set_information('type', "service")
-optiondescription_45 = OptionDescription(name="services", doc="services", children=[optiondescription_46], properties=frozenset({"hidden"}))
-optiondescription_42 = OptionDescription(name="2", doc="2", children=[optiondescription_43, optiondescription_44, optiondescription_45])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_37, optiondescription_42])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_9 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_10 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = Leadership(name="new_name", doc="new_name", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_15 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="general", doc="général", children=[option_14, option_15], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13], properties=frozenset({"normal"}))
+option_19 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_20 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_18 = Leadership(name="new_name", doc="new_name", children=[option_19, option_20], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_18], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_17], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12, optiondescription_16], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/60extra_leadership_name_item/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_leadership_name_item/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..d3a06a971
--- /dev/null
+++ b/tests/dictionaries/60extra_leadership_name_item/dictionaries/extra/00-base.yml
@@ -0,0 +1,13 @@
+ejabberd:
+ new_name:
+ type: leadership
+ _description: new_name
+ description:
+ type: string
+ multi: true
+ default:
+ - test
+ mode:
+ type: string
+ default: pre
+version: '1.0'
diff --git a/tests/dictionaries/60extra_leadership_name_item/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_leadership_name_item/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries/60extra_leadership_name_item/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60extra_leadership_name_item/makedict/after.json b/tests/dictionaries/60extra_leadership_name_item/makedict/after.json
index bd4006b97..0c3ab5035 100644
--- a/tests/dictionaries/60extra_leadership_name_item/makedict/after.json
+++ b/tests/dictionaries/60extra_leadership_name_item/makedict/after.json
@@ -20,37 +20,5 @@
"value": [
"pre"
]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/60extra_leadership_name_item/makedict/base.json b/tests/dictionaries/60extra_leadership_name_item/makedict/base.json
index 13e7ece30..0d7dadf09 100644
--- a/tests/dictionaries/60extra_leadership_name_item/makedict/base.json
+++ b/tests/dictionaries/60extra_leadership_name_item/makedict/base.json
@@ -6,13 +6,5 @@
"extra.ejabberd.new_name.description": "test",
"extra.ejabberd.new_name.mode": "pre"
}
- ],
- "services.test_service.files.mailname.name": "/etc/mailname",
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.activate": true,
- "services.test_service.files.mailname2.name": "/etc/mailname2",
- "services.test_service.files.mailname2.source": "mailname2",
- "services.test_service.files.mailname2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ ]
}
diff --git a/tests/dictionaries/60extra_leadership_name_item/makedict/before.json b/tests/dictionaries/60extra_leadership_name_item/makedict/before.json
index bd4006b97..0c3ab5035 100644
--- a/tests/dictionaries/60extra_leadership_name_item/makedict/before.json
+++ b/tests/dictionaries/60extra_leadership_name_item/makedict/before.json
@@ -20,37 +20,5 @@
"value": [
"pre"
]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/60extra_leadership_name_item/tiramisu/base.py b/tests/dictionaries/60extra_leadership_name_item/tiramisu/base.py
index e21c2371f..1a95e44b2 100644
--- a/tests/dictionaries/60extra_leadership_name_item/tiramisu/base.py
+++ b/tests/dictionaries/60extra_leadership_name_item/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,39 +17,15 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = Leadership(name="new_name", doc="new_name", children=[option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_13 = StrOption(name="source", doc="source", default="mailname")
-option_11 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_10 = OptionDescription(name="mailname", doc="mailname", children=[option_12, option_13, option_11])
-option_16 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_17 = StrOption(name="source", doc="source", default="mailname2")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_14 = OptionDescription(name="mailname2", doc="mailname2", children=[option_16, option_17, option_15])
-optiondescription_14.impl_set_information('engine', "jinja")
-optiondescription_9 = OptionDescription(name="files", doc="files", children=[optiondescription_10, optiondescription_14])
-option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_18 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_22 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_9, option_8, option_18])
-optiondescription_22.impl_set_information('type', "service")
-optiondescription_21 = OptionDescription(name="services", doc="services", children=[optiondescription_22], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_19, optiondescription_20, optiondescription_21])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_9 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = Leadership(name="new_name", doc="new_name", children=[option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/60extra_leadership_name_item/tiramisu/multi.py b/tests/dictionaries/60extra_leadership_name_item/tiramisu/multi.py
index 4c800df8d..6899edad6 100644
--- a/tests/dictionaries/60extra_leadership_name_item/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_leadership_name_item/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,65 +17,26 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_38 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = Leadership(name="new_name", doc="new_name", children=[option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_39 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_20 = StrOption(name="source", doc="source", default="mailname")
-option_18 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
-option_23 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_24 = StrOption(name="source", doc="source", default="mailname2")
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_21 = OptionDescription(name="mailname2", doc="mailname2", children=[option_23, option_24, option_22])
-optiondescription_21.impl_set_information('engine', "jinja")
-optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17, optiondescription_21])
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_25 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_41 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_25])
-optiondescription_41.impl_set_information('type', "service")
-optiondescription_40 = OptionDescription(name="services", doc="services", children=[optiondescription_41], properties=frozenset({"hidden"}))
-optiondescription_37 = OptionDescription(name="1", doc="1", children=[optiondescription_38, optiondescription_39, optiondescription_40])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_43 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-option_13 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
-option_14 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_12 = Leadership(name="new_name", doc="new_name", children=[option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_12], properties=frozenset({"normal"}))
-optiondescription_44 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
-option_30 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_31 = StrOption(name="source", doc="source", default="mailname")
-option_29 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_28 = OptionDescription(name="mailname", doc="mailname", children=[option_30, option_31, option_29])
-option_34 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_35 = StrOption(name="source", doc="source", default="mailname2")
-option_33 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_32 = OptionDescription(name="mailname2", doc="mailname2", children=[option_34, option_35, option_33])
-optiondescription_32.impl_set_information('engine', "jinja")
-optiondescription_27 = OptionDescription(name="files", doc="files", children=[optiondescription_28, optiondescription_32])
-option_26 = BoolOption(name="activate", doc="activate", default=True)
-option_36 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_46 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_27, option_26, option_36])
-optiondescription_46.impl_set_information('type', "service")
-optiondescription_45 = OptionDescription(name="services", doc="services", children=[optiondescription_46], properties=frozenset({"hidden"}))
-optiondescription_42 = OptionDescription(name="2", doc="2", children=[optiondescription_43, optiondescription_44, optiondescription_45])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_37, optiondescription_42])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_9 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_10 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = Leadership(name="new_name", doc="new_name", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_15 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="general", doc="général", children=[option_14, option_15], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13], properties=frozenset({"normal"}))
+option_19 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_20 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_18 = Leadership(name="new_name", doc="new_name", children=[option_19, option_20], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_18], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_17], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12, optiondescription_16], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/60extra_leadership_valid_enum/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_leadership_valid_enum/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..982b50447
--- /dev/null
+++ b/tests/dictionaries/60extra_leadership_valid_enum/dictionaries/extra/00-base.yml
@@ -0,0 +1,16 @@
+ejabberd:
+ description:
+ type: leadership
+ _description: description
+ description:
+ type: string
+ multi: true
+ default:
+ - test
+ mode:
+ type: choice
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries/60extra_leadership_valid_enum/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_leadership_valid_enum/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries/60extra_leadership_valid_enum/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60extra_leadership_valid_enum/makedict/after.json b/tests/dictionaries/60extra_leadership_valid_enum/makedict/after.json
index dbe324b76..402b713e0 100644
--- a/tests/dictionaries/60extra_leadership_valid_enum/makedict/after.json
+++ b/tests/dictionaries/60extra_leadership_valid_enum/makedict/after.json
@@ -20,37 +20,5 @@
"value": [
"pre"
]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/60extra_leadership_valid_enum/makedict/base.json b/tests/dictionaries/60extra_leadership_valid_enum/makedict/base.json
index 925519eb7..c7fd217af 100644
--- a/tests/dictionaries/60extra_leadership_valid_enum/makedict/base.json
+++ b/tests/dictionaries/60extra_leadership_valid_enum/makedict/base.json
@@ -6,13 +6,5 @@
"extra.ejabberd.description.description": "test",
"extra.ejabberd.description.mode": "pre"
}
- ],
- "services.test_service.files.mailname.name": "/etc/mailname",
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.activate": true,
- "services.test_service.files.mailname2.name": "/etc/mailname2",
- "services.test_service.files.mailname2.source": "mailname2",
- "services.test_service.files.mailname2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
+ ]
}
diff --git a/tests/dictionaries/60extra_leadership_valid_enum/makedict/before.json b/tests/dictionaries/60extra_leadership_valid_enum/makedict/before.json
index dbe324b76..402b713e0 100644
--- a/tests/dictionaries/60extra_leadership_valid_enum/makedict/before.json
+++ b/tests/dictionaries/60extra_leadership_valid_enum/makedict/before.json
@@ -20,37 +20,5 @@
"value": [
"pre"
]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
}
}
diff --git a/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/base.py b/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/base.py
index 1afa0353f..d903f3dbf 100644
--- a/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/base.py
+++ b/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,39 +17,15 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = Leadership(name="description", doc="description", children=[option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_13 = StrOption(name="source", doc="source", default="mailname")
-option_11 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_10 = OptionDescription(name="mailname", doc="mailname", children=[option_12, option_13, option_11])
-option_16 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_17 = StrOption(name="source", doc="source", default="mailname2")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_14 = OptionDescription(name="mailname2", doc="mailname2", children=[option_16, option_17, option_15])
-optiondescription_14.impl_set_information('engine', "jinja")
-optiondescription_9 = OptionDescription(name="files", doc="files", children=[optiondescription_10, optiondescription_14])
-option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_18 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_22 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_9, option_8, option_18])
-optiondescription_22.impl_set_information('type', "service")
-optiondescription_21 = OptionDescription(name="services", doc="services", children=[optiondescription_22], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_19, optiondescription_20, optiondescription_21])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_9 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = Leadership(name="description", doc="description", children=[option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/multi.py b/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/multi.py
index ed75dd172..ef43e70e5 100644
--- a/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,65 +17,26 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_38 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = Leadership(name="description", doc="description", children=[option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_39 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_20 = StrOption(name="source", doc="source", default="mailname")
-option_18 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
-option_23 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_24 = StrOption(name="source", doc="source", default="mailname2")
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_21 = OptionDescription(name="mailname2", doc="mailname2", children=[option_23, option_24, option_22])
-optiondescription_21.impl_set_information('engine', "jinja")
-optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17, optiondescription_21])
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_25 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_41 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_25])
-optiondescription_41.impl_set_information('type', "service")
-optiondescription_40 = OptionDescription(name="services", doc="services", children=[optiondescription_41], properties=frozenset({"hidden"}))
-optiondescription_37 = OptionDescription(name="1", doc="1", children=[optiondescription_38, optiondescription_39, optiondescription_40])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_43 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-option_13 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
-option_14 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_12 = Leadership(name="description", doc="description", children=[option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_12], properties=frozenset({"normal"}))
-optiondescription_44 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
-option_30 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_31 = StrOption(name="source", doc="source", default="mailname")
-option_29 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_28 = OptionDescription(name="mailname", doc="mailname", children=[option_30, option_31, option_29])
-option_34 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_35 = StrOption(name="source", doc="source", default="mailname2")
-option_33 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_32 = OptionDescription(name="mailname2", doc="mailname2", children=[option_34, option_35, option_33])
-optiondescription_32.impl_set_information('engine', "jinja")
-optiondescription_27 = OptionDescription(name="files", doc="files", children=[optiondescription_28, optiondescription_32])
-option_26 = BoolOption(name="activate", doc="activate", default=True)
-option_36 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_46 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_27, option_26, option_36])
-optiondescription_46.impl_set_information('type', "service")
-optiondescription_45 = OptionDescription(name="services", doc="services", children=[optiondescription_46], properties=frozenset({"hidden"}))
-optiondescription_42 = OptionDescription(name="2", doc="2", children=[optiondescription_43, optiondescription_44, optiondescription_45])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_37, optiondescription_42])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_9 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_10 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = Leadership(name="description", doc="description", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_15 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="general", doc="général", children=[option_14, option_15], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13], properties=frozenset({"normal"}))
+option_19 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal", "notempty"}))
+option_20 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_18 = Leadership(name="description", doc="description", children=[option_19, option_20], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_18], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_17], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12, optiondescription_16], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/60extra_load/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_load/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..7cfaf7731
--- /dev/null
+++ b/tests/dictionaries/60extra_load/dictionaries/extra/00-base.yml
@@ -0,0 +1,29 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__activer_ejabberd, match="none",
+ mismatch="daily") }}'
+ params:
+ __activer_ejabberd:
+ type: variable
+ variable: rougail.general.activer_ejabberd
+ propertyerror: false
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries/60extra_load/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_load/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries/60extra_load/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60extra_load/tiramisu/base.py b/tests/dictionaries/60extra_load/tiramisu/base.py
index deca00e34..72d6a7c8e 100644
--- a/tests/dictionaries/60extra_load/tiramisu/base.py
+++ b/tests/dictionaries/60extra_load/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,24 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8, optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_8 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_4, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/60extra_load/tiramisu/multi.py b/tests/dictionaries/60extra_load/tiramisu/multi.py
index 9c2e3c1f0..d3f375a20 100644
--- a/tests/dictionaries/60extra_load/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_load/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,35 +17,75 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16, optiondescription_17])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-option_12 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_13 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_10, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_14 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="2", doc="2", children=[optiondescription_19, optiondescription_20])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_18])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+dict_env['default_2.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_5, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_10 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_15 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="general", doc="général", children=[option_14, option_15], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13], properties=frozenset({"normal"}))
+option_18 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_19 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_15, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_20 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_17 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_18, option_19, option_20], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_17], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12, optiondescription_16], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/60extra_mandatory/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_mandatory/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..3e775557f
--- /dev/null
+++ b/tests/dictionaries/60extra_mandatory/dictionaries/extra/00-base.yml
@@ -0,0 +1,32 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__activer_ejabberd, match="none",
+ mismatch="daily") }}'
+ params:
+ __activer_ejabberd:
+ type: variable
+ variable: rougail.general.activer_ejabberd
+ propertyerror: false
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+ var1:
+ type: string
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries/60extra_mandatory/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_mandatory/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries/60extra_mandatory/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60extra_mandatory/tiramisu/base.py b/tests/dictionaries/60extra_mandatory/tiramisu/base.py
index d174cd3b4..902efe7a9 100644
--- a/tests/dictionaries/60extra_mandatory/tiramisu/base.py
+++ b/tests/dictionaries/60extra_mandatory/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,64 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7, option_8], properties=frozenset({"basic"}))
-optiondescription_10 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_10])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_8 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_4, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9, option_10], properties=frozenset({"basic"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/60extra_mandatory/tiramisu/multi.py b/tests/dictionaries/60extra_mandatory/tiramisu/multi.py
index b9aa4c422..c55594967 100644
--- a/tests/dictionaries/60extra_mandatory/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_mandatory/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,37 +17,77 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-option_8 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7, option_8], properties=frozenset({"basic"}))
-optiondescription_19 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"basic"}))
-optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18, optiondescription_19])
-option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_11 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_9 = OptionDescription(name="general", doc="général", children=[option_10, option_11], properties=frozenset({"normal"}))
-optiondescription_21 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
-option_13 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_14 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_11, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_15 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-option_16 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}))
-optiondescription_12 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_13, option_14, option_15, option_16], properties=frozenset({"basic"}))
-optiondescription_22 = OptionDescription(name="extra", doc="extra", children=[optiondescription_12], properties=frozenset({"basic"}))
-optiondescription_20 = OptionDescription(name="2", doc="2", children=[optiondescription_21, optiondescription_22])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_20])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+dict_env['default_2.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_5, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_10 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}))
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10, option_11], properties=frozenset({"basic"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_6], properties=frozenset({"basic"}))
+option_15 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_16 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_14 = OptionDescription(name="general", doc="général", children=[option_15, option_16], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_14], properties=frozenset({"normal"}))
+option_19 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_20 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_16, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_21 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+option_22 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}))
+optiondescription_18 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_19, option_20, option_21, option_22], properties=frozenset({"basic"}))
+optiondescription_17 = OptionDescription(name="extra", doc="extra", children=[optiondescription_18], properties=frozenset({"basic"}))
+optiondescription_12 = OptionDescription(name="2", doc="2", children=[optiondescription_13, optiondescription_17], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_12])
diff --git a/tests/dictionaries/60extra_name_family/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_name_family/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..3c18f4e09
--- /dev/null
+++ b/tests/dictionaries/60extra_name_family/dictionaries/extra/00-base.yml
@@ -0,0 +1,29 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__activer_ejabberd, match="none",
+ mismatch="daily") }}'
+ params:
+ __activer_ejabberd:
+ type: variable
+ variable: rougail.extra.activer_ejabberd
+ propertyerror: false
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries/60extra_name_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_name_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..2d97f1169
--- /dev/null
+++ b/tests/dictionaries/60extra_name_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+extra:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60extra_name_family/tiramisu/base.py b/tests/dictionaries/60extra_name_family/tiramisu/base.py
index d15c5d46a..93fa2541c 100644
--- a/tests/dictionaries/60extra_name_family/tiramisu/base.py
+++ b/tests/dictionaries/60extra_name_family/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,24 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="extra", doc="extra", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8, optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="extra", doc="extra", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_8 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_4, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/60extra_name_family/tiramisu/multi.py b/tests/dictionaries/60extra_name_family/tiramisu/multi.py
index a746df2ff..3e8029177 100644
--- a/tests/dictionaries/60extra_name_family/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_name_family/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,35 +17,75 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="extra", doc="extra", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16, optiondescription_17])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="extra", doc="extra", children=[option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-option_12 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_13 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_10, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_14 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="2", doc="2", children=[optiondescription_19, optiondescription_20])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_18])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+dict_env['default_2.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="extra", doc="extra", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_5, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_10 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_15 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="extra", doc="extra", children=[option_14, option_15], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13], properties=frozenset({"normal"}))
+option_18 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_19 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_15, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_20 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_17 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_18, option_19, option_20], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_17], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12, optiondescription_16], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/60extra_no_condition/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_no_condition/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..47d02767d
--- /dev/null
+++ b/tests/dictionaries/60extra_no_condition/dictionaries/extra/00-base.yml
@@ -0,0 +1,21 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default: none
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries/60extra_no_condition/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_no_condition/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4c7f61ce1
--- /dev/null
+++ b/tests/dictionaries/60extra_no_condition/dictionaries/rougail/00-base.yml
@@ -0,0 +1,17 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ module_instancie:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60extra_no_condition/tiramisu/base.py b/tests/dictionaries/60extra_no_condition/tiramisu/base.py
index ce9a8c0ad..4a843afb0 100644
--- a/tests/dictionaries/60extra_no_condition/tiramisu/base.py
+++ b/tests/dictionaries/60extra_no_condition/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,25 +17,16 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="module_instancie", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default="none", properties=frozenset({"mandatory", "normal"}))
-option_8 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_10])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="module_instancie", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default="none", properties=frozenset({"mandatory", "normal"}))
+option_10 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/60extra_no_condition/tiramisu/multi.py b/tests/dictionaries/60extra_no_condition/tiramisu/multi.py
index 3de901b74..068fd41f1 100644
--- a/tests/dictionaries/60extra_no_condition/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_no_condition/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,37 +17,28 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="module_instancie", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_6 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default="none", properties=frozenset({"mandatory", "normal"}))
-option_8 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18, optiondescription_19])
-option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_11 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_12 = StrOption(name="module_instancie", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_9 = OptionDescription(name="general", doc="général", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
-optiondescription_21 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
-option_14 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_15 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default="none", properties=frozenset({"mandatory", "normal"}))
-option_16 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_13 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_14, option_15, option_16], properties=frozenset({"normal"}))
-optiondescription_22 = OptionDescription(name="extra", doc="extra", children=[optiondescription_13], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="2", doc="2", children=[optiondescription_21, optiondescription_22])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_20])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="module_instancie", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_9 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_10 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default="none", properties=frozenset({"mandatory", "normal"}))
+option_11 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_9, option_10, option_11], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="extra", doc="extra", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_7], properties=frozenset({"normal"}))
+option_15 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_16 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_17 = StrOption(name="module_instancie", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_14 = OptionDescription(name="general", doc="général", children=[option_15, option_16, option_17], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_14], properties=frozenset({"normal"}))
+option_20 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_21 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default="none", properties=frozenset({"mandatory", "normal"}))
+option_22 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_19 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_20, option_21, option_22], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="extra", doc="extra", children=[optiondescription_19], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="2", doc="2", children=[optiondescription_13, optiondescription_18], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_12])
diff --git a/tests/dictionaries/60extra_redefine/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_redefine/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..7cfaf7731
--- /dev/null
+++ b/tests/dictionaries/60extra_redefine/dictionaries/extra/00-base.yml
@@ -0,0 +1,29 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__activer_ejabberd, match="none",
+ mismatch="daily") }}'
+ params:
+ __activer_ejabberd:
+ type: variable
+ variable: rougail.general.activer_ejabberd
+ propertyerror: false
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries/60extra_redefine/dictionaries/extra/01-redefine.yml b/tests/dictionaries/60extra_redefine/dictionaries/extra/01-redefine.yml
new file mode 100644
index 000000000..27c322342
--- /dev/null
+++ b/tests/dictionaries/60extra_redefine/dictionaries/extra/01-redefine.yml
@@ -0,0 +1,5 @@
+ejabberd:
+ description:
+ redefine: true
+ hidden: true
+version: '1.0'
diff --git a/tests/dictionaries/60extra_redefine/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_redefine/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries/60extra_redefine/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60extra_redefine/tiramisu/base.py b/tests/dictionaries/60extra_redefine/tiramisu/base.py
index 5a1d51a5f..5c0fed054 100644
--- a/tests/dictionaries/60extra_redefine/tiramisu/base.py
+++ b/tests/dictionaries/60extra_redefine/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,24 +17,63 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8, optiondescription_9])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_8 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_4, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/60extra_redefine/tiramisu/multi.py b/tests/dictionaries/60extra_redefine/tiramisu/multi.py
index ded1bb448..39f62849f 100644
--- a/tests/dictionaries/60extra_redefine/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_redefine/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,35 +17,75 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16, optiondescription_17])
-option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
-optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
-option_12 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_13 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_10, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
-option_14 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
-optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="2", doc="2", children=[optiondescription_19, optiondescription_20])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_18])
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value is not None)
+def jinja_to_property_help(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return (prop, f'"{prop}" ({value})')
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['jinja_to_property_help'] = jinja_to_property_help
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+dict_env['default_1.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+dict_env['default_2.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_9 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_5, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_10 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_15 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="general", doc="général", children=[option_14, option_15], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13], properties=frozenset({"normal"}))
+option_18 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_19 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_15, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "normal"}))
+option_20 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_17 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_18, option_19, option_20], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_17], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12, optiondescription_16], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11])
diff --git a/tests/dictionaries/60extra_variable_name_extra/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_variable_name_extra/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..86179e740
--- /dev/null
+++ b/tests/dictionaries/60extra_variable_name_extra/dictionaries/extra/00-base.yml
@@ -0,0 +1,2 @@
+extra: {}
+version: '1.0'
diff --git a/tests/dictionaries/60extra_variable_name_extra/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_variable_name_extra/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries/60extra_variable_name_extra/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60extra_variable_name_extra/tiramisu/base.py b/tests/dictionaries/60extra_variable_name_extra/tiramisu/base.py
index 220e255d8..4f4ad4bcd 100644
--- a/tests/dictionaries/60extra_variable_name_extra/tiramisu/base.py
+++ b/tests/dictionaries/60extra_variable_name_extra/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = StrOption(name="extra", doc="extra", properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[option_4], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_6])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = StrOption(name="extra", doc="extra", properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[option_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/60extra_variable_name_extra/tiramisu/multi.py b/tests/dictionaries/60extra_variable_name_extra/tiramisu/multi.py
index a5e401882..71c9ab497 100644
--- a/tests/dictionaries/60extra_variable_name_extra/tiramisu/multi.py
+++ b/tests/dictionaries/60extra_variable_name_extra/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = StrOption(name="extra", doc="extra", properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="extra", doc="extra", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10, optiondescription_11])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_7 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="général", children=[option_6, option_7], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_8 = StrOption(name="extra", doc="extra", properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="extra", doc="extra", children=[option_8], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="2", doc="2", children=[optiondescription_13, optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_12])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_7 = StrOption(name="extra", doc="extra", properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_12 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_10 = OptionDescription(name="general", doc="général", children=[option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_14 = StrOption(name="extra", doc="extra", properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="extra", doc="extra", children=[option_14], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9, optiondescription_13], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/60familyaction/dictionaries/extra/00-base.yml b/tests/dictionaries/60familyaction/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..2ccc3ff50
--- /dev/null
+++ b/tests/dictionaries/60familyaction/dictionaries/extra/00-base.yml
@@ -0,0 +1,6 @@
+test:
+ delay:
+ type: number
+ description: délai en minutes avant lancement
+ default: 0
+version: '1.0'
diff --git a/tests/dictionaries/60familyaction/dictionaries/rougail/00-base.yml b/tests/dictionaries/60familyaction/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1085cc1cc
--- /dev/null
+++ b/tests/dictionaries/60familyaction/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60familyaction/tiramisu/base.py b/tests/dictionaries/60familyaction/tiramisu/base.py
index 9b1f044c9..54ba3adc3 100644
--- a/tests/dictionaries/60familyaction/tiramisu/base.py
+++ b/tests/dictionaries/60familyaction/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,21 +17,12 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = OptionDescription(name="test", doc="test", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_6])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="test", doc="test", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/60familyaction/tiramisu/multi.py b/tests/dictionaries/60familyaction/tiramisu/multi.py
index c2d17cefc..682e7564d 100644
--- a/tests/dictionaries/60familyaction/tiramisu/multi.py
+++ b/tests/dictionaries/60familyaction/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,29 +17,20 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = OptionDescription(name="test", doc="test", children=[option_4], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10, optiondescription_11])
-option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="général", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_8 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
-optiondescription_7 = OptionDescription(name="test", doc="test", children=[option_8], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="2", doc="2", children=[optiondescription_13, optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_12])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_7 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="test", doc="test", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_5], properties=frozenset({"normal"}))
+option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_10 = OptionDescription(name="general", doc="général", children=[option_11], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_14 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="test", doc="test", children=[option_14], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="extra", doc="extra", children=[optiondescription_13], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9, optiondescription_12], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/60familyaction_mandatory/dictionaries/extra/00-base.yml b/tests/dictionaries/60familyaction_mandatory/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..21c871450
--- /dev/null
+++ b/tests/dictionaries/60familyaction_mandatory/dictionaries/extra/00-base.yml
@@ -0,0 +1,10 @@
+test:
+ delay:
+ type: number
+ description: délai en minutes avant lancement
+ default: 0
+ day:
+ type: number
+ description: day avant lancement
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries/60familyaction_mandatory/dictionaries/rougail/00-base.yml b/tests/dictionaries/60familyaction_mandatory/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1085cc1cc
--- /dev/null
+++ b/tests/dictionaries/60familyaction_mandatory/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/60familyaction_mandatory/tiramisu/base.py b/tests/dictionaries/60familyaction_mandatory/tiramisu/base.py
index 2c480a80b..860f2dd74 100644
--- a/tests/dictionaries/60familyaction_mandatory/tiramisu/base.py
+++ b/tests/dictionaries/60familyaction_mandatory/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,13 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
-option_5 = IntOption(name="day", doc="day avant lancement", properties=frozenset({"basic", "mandatory"}))
-optiondescription_3 = OptionDescription(name="test", doc="test", children=[option_4, option_5], properties=frozenset({"basic"}))
-optiondescription_7 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6, optiondescription_7])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+option_7 = IntOption(name="day", doc="day avant lancement", properties=frozenset({"basic", "mandatory"}))
+optiondescription_5 = OptionDescription(name="test", doc="test", children=[option_6, option_7], properties=frozenset({"basic"}))
+optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/60familyaction_mandatory/tiramisu/multi.py b/tests/dictionaries/60familyaction_mandatory/tiramisu/multi.py
index be8923e29..890206b47 100644
--- a/tests/dictionaries/60familyaction_mandatory/tiramisu/multi.py
+++ b/tests/dictionaries/60familyaction_mandatory/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,31 +17,22 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
-option_5 = IntOption(name="day", doc="day avant lancement", properties=frozenset({"basic", "mandatory"}))
-optiondescription_3 = OptionDescription(name="test", doc="test", children=[option_4, option_5], properties=frozenset({"basic"}))
-optiondescription_13 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3], properties=frozenset({"basic"}))
-optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12, optiondescription_13])
-option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_6 = OptionDescription(name="general", doc="général", children=[option_7], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
-option_9 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
-option_10 = IntOption(name="day", doc="day avant lancement", properties=frozenset({"basic", "mandatory"}))
-optiondescription_8 = OptionDescription(name="test", doc="test", children=[option_9, option_10], properties=frozenset({"basic"}))
-optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_8], properties=frozenset({"basic"}))
-optiondescription_14 = OptionDescription(name="2", doc="2", children=[optiondescription_15, optiondescription_16])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_14])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_7 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+option_8 = IntOption(name="day", doc="day avant lancement", properties=frozenset({"basic", "mandatory"}))
+optiondescription_6 = OptionDescription(name="test", doc="test", children=[option_7, option_8], properties=frozenset({"basic"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_5], properties=frozenset({"basic"}))
+option_12 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_11 = OptionDescription(name="general", doc="général", children=[option_12], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_15 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+option_16 = IntOption(name="day", doc="day avant lancement", properties=frozenset({"basic", "mandatory"}))
+optiondescription_14 = OptionDescription(name="test", doc="test", children=[option_15, option_16], properties=frozenset({"basic"}))
+optiondescription_13 = OptionDescription(name="extra", doc="extra", children=[optiondescription_14], properties=frozenset({"basic"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10, optiondescription_13], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries/61extra_auto_freeze/makedict/after.json b/tests/dictionaries/61extra_auto_freeze/makedict/after.json
deleted file mode 100644
index fbe171070..000000000
--- a/tests/dictionaries/61extra_auto_freeze/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.server_deployed": {
- "owner": "default",
- "value": true
- },
- "rougail.general.activer_ejabberd": {
- "owner": "default",
- "value": "non"
- },
- "extra.ejabberd.mode": {
- "owner": "forced",
- "value": "pre"
- }
-}
diff --git a/tests/dictionaries/61extra_auto_freeze/makedict/base.json b/tests/dictionaries/61extra_auto_freeze/makedict/base.json
deleted file mode 100644
index 42890f478..000000000
--- a/tests/dictionaries/61extra_auto_freeze/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.general.server_deployed": true,
- "rougail.general.activer_ejabberd": "non",
- "extra.ejabberd.mode": "pre"
-}
diff --git a/tests/dictionaries/61extra_auto_freeze/makedict/before.json b/tests/dictionaries/61extra_auto_freeze/makedict/before.json
deleted file mode 100644
index 8f32cc776..000000000
--- a/tests/dictionaries/61extra_auto_freeze/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.server_deployed": {
- "owner": "default",
- "value": true
- },
- "rougail.general.activer_ejabberd": {
- "owner": "default",
- "value": "non"
- },
- "extra.ejabberd.mode": {
- "owner": "default",
- "value": "pre"
- }
-}
diff --git a/tests/dictionaries/61extra_auto_freeze/tiramisu/base.py b/tests/dictionaries/61extra_auto_freeze/tiramisu/base.py
deleted file mode 100644
index 62305b888..000000000
--- a/tests/dictionaries/61extra_auto_freeze/tiramisu/base.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = BoolOption(name="server_deployed", doc="No change", default=True, properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_5 = StrOption(name="mode", doc="mode", default="pre", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
-optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5], properties=frozenset({"basic"}))
-optiondescription_7 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"basic"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6, optiondescription_7])
diff --git a/tests/dictionaries/61extra_dyn/dictionaries/extra/00-base.yml b/tests/dictionaries/61extra_dyn/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..9adc5a700
--- /dev/null
+++ b/tests/dictionaries/61extra_dyn/dictionaries/extra/00-base.yml
@@ -0,0 +1,7 @@
+---
+version: '1.0'
+ejabberd:
+ type: dynamic
+ variable: rougail.general.varname
+ mode:
+ type: string
diff --git a/tests/dictionaries/61extra_dyn/dictionaries/rougail/00-base.yml b/tests/dictionaries/61extra_dyn/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ac2f3ea83
--- /dev/null
+++ b/tests/dictionaries/61extra_dyn/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+---
+version: '1.0'
+general:
+ description: général
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - a
diff --git a/tests/dictionaries/61extra_dyn/tiramisu/base.py b/tests/dictionaries/61extra_dyn/tiramisu/base.py
index cc68f7b6e..da89222db 100644
--- a/tests/dictionaries/61extra_dyn/tiramisu/base.py
+++ b/tests/dictionaries/61extra_dyn/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,22 +17,13 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_6])
+option_3 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
+optiondescription_5 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/61extra_dyn/tiramisu/multi.py b/tests/dictionaries/61extra_dyn/tiramisu/multi.py
index 5cdfe689a..978e6c295 100644
--- a/tests/dictionaries/61extra_dyn/tiramisu/multi.py
+++ b/tests/dictionaries/61extra_dyn/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,30 +17,21 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
-optiondescription_3 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
-optiondescription_11 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3], properties=frozenset({"normal"}))
-optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10, optiondescription_11])
-option_6 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_5 = OptionDescription(name="general", doc="général", children=[option_6], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
-option_8 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
-optiondescription_7 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func.calc_value, Params((ParamOption(option_6, notraisepropertyerror=True)))), children=[option_8], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="2", doc="2", children=[optiondescription_13, optiondescription_14])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_12])
+option_4 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_7 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
+optiondescription_6 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_5], properties=frozenset({"normal"}))
+option_11 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_10 = OptionDescription(name="general", doc="général", children=[option_11], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"normal"}))
+option_14 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
+optiondescription_13 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_11, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="extra", doc="extra", children=[optiondescription_13], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9, optiondescription_12], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8])
diff --git a/tests/dictionaries/61extra_dyn/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries/61extra_dyn/yml/extra_dirs/extra/00-base.yml
deleted file mode 100644
index 867c35c4d..000000000
--- a/tests/dictionaries/61extra_dyn/yml/extra_dirs/extra/00-base.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: ejabberd
- dynamic: varname
- variables:
- - variable:
- - name: mode
- type: string
diff --git a/tests/dictionaries/61extra_dyn_extra/dictionaries/extra/00-base.yml b/tests/dictionaries/61extra_dyn_extra/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..6478b3c0f
--- /dev/null
+++ b/tests/dictionaries/61extra_dyn_extra/dictionaries/extra/00-base.yml
@@ -0,0 +1,14 @@
+general:
+ description: général
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - a
+ejabberd:
+ type: dynamic
+ variable: extra.general.varname
+ mode:
+ type: string
+version: '1.0'
diff --git a/tests/dictionaries/61extra_dyn_extra/dictionaries/rougail/00-base.yml b/tests/dictionaries/61extra_dyn_extra/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..2926dc5df
--- /dev/null
+++ b/tests/dictionaries/61extra_dyn_extra/dictionaries/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ description: général
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - a
+version: '1.0'
diff --git a/tests/dictionaries/61extra_dyn_extra/tiramisu/base.py b/tests/dictionaries/61extra_dyn_extra/tiramisu/base.py
index d8a0ce14c..6481ef04a 100644
--- a/tests/dictionaries/61extra_dyn_extra/tiramisu/base.py
+++ b/tests/dictionaries/61extra_dyn_extra/tiramisu/base.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,24 +17,15 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
-optiondescription_5 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func.calc_value, Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_8])
+option_3 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_5 = OptionDescription(name="general", doc="général", children=[option_6], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
+optiondescription_7 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_6, notraisepropertyerror=True)))), children=[option_8], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/61extra_dyn_extra/tiramisu/multi.py b/tests/dictionaries/61extra_dyn_extra/tiramisu/multi.py
index 47c6750db..da62beb6a 100644
--- a/tests/dictionaries/61extra_dyn_extra/tiramisu/multi.py
+++ b/tests/dictionaries/61extra_dyn_extra/tiramisu/multi.py
@@ -1,7 +1,12 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
+global func
+func = {'calc_value': calc_value}
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
@@ -12,34 +17,25 @@ def _load_functions(path):
for function in dir(func_):
if function.startswith('_'):
continue
- setattr(func, function, getattr(func_, function))
+ func[function] = getattr(func_, function)
_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
from rougail.tiramisu import ConvertDynOptionDescription
-option_2 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"normal"}))
-option_6 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
-optiondescription_5 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func.calc_value, Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"normal"}))
-optiondescription_15 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
-optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14, optiondescription_15])
-option_8 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_7 = OptionDescription(name="general", doc="général", children=[option_8], properties=frozenset({"normal"}))
-optiondescription_17 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
-option_10 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = OptionDescription(name="general", doc="général", children=[option_10], properties=frozenset({"normal"}))
-option_12 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
-optiondescription_11 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func.calc_value, Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[option_12], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="extra", doc="extra", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
-optiondescription_16 = OptionDescription(name="2", doc="2", children=[optiondescription_17, optiondescription_18])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_16])
+optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_7 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_6 = OptionDescription(name="general", doc="général", children=[option_7], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
+optiondescription_8 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_7, notraisepropertyerror=True)))), children=[option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6, optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_5], properties=frozenset({"normal"}))
+option_13 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_12 = OptionDescription(name="general", doc="général", children=[option_13], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12], properties=frozenset({"normal"}))
+option_16 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+optiondescription_15 = OptionDescription(name="general", doc="général", children=[option_16], properties=frozenset({"normal"}))
+option_18 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
+optiondescription_17 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_16, notraisepropertyerror=True)))), children=[option_18], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="extra", doc="extra", children=[optiondescription_15, optiondescription_17], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11, optiondescription_14], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])
diff --git a/tests/dictionaries/61extra_dyn_extra/yml/00-base.yml b/tests/dictionaries/61extra_dyn_extra/yml/00-base.yml
deleted file mode 100644
index 503e4928f..000000000
--- a/tests/dictionaries/61extra_dyn_extra/yml/00-base.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- description: "g\xE9n\xE9ral"
- variables:
- - variable:
- - name: varname
- type: string
- description: No change
- multi: true
- value:
- - text: a
diff --git a/tests/dictionaries/70container_files/makedict/after.json b/tests/dictionaries/70container_files/makedict/after.json
deleted file mode 100644
index 7bda84dda..000000000
--- a/tests/dictionaries/70container_files/makedict/after.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.rougail_conf.name": {
- "owner": "default",
- "value": "/rougail.conf"
- },
- "services.test_service.files.rougail_conf.source": {
- "owner": "default",
- "value": "rougail.conf"
- },
- "services.test_service.files.rougail_conf.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_files/makedict/base.json b/tests/dictionaries/70container_files/makedict/base.json
deleted file mode 100644
index 0ac00793a..000000000
--- a/tests/dictionaries/70container_files/makedict/base.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "oui",
- "services.test_service.files.mailname.name": "/etc/mailname",
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.activate": true,
- "services.test_service.files.rougail_conf.name": "/rougail.conf",
- "services.test_service.files.rougail_conf.source": "rougail.conf",
- "services.test_service.files.rougail_conf.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70container_files/makedict/before.json b/tests/dictionaries/70container_files/makedict/before.json
deleted file mode 100644
index 7bda84dda..000000000
--- a/tests/dictionaries/70container_files/makedict/before.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.rougail_conf.name": {
- "owner": "default",
- "value": "/rougail.conf"
- },
- "services.test_service.files.rougail_conf.source": {
- "owner": "default",
- "value": "rougail.conf"
- },
- "services.test_service.files.rougail_conf.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_files/result/etc/mailname b/tests/dictionaries/70container_files/result/etc/mailname
deleted file mode 100644
index bd51bf63f..000000000
--- a/tests/dictionaries/70container_files/result/etc/mailname
+++ /dev/null
@@ -1 +0,0 @@
-oui
diff --git a/tests/dictionaries/70container_files/result/rougail.conf b/tests/dictionaries/70container_files/result/rougail.conf
deleted file mode 100644
index b8f8a226c..000000000
--- a/tests/dictionaries/70container_files/result/rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/share/factory/etc/mailname
-z /etc/mailname - - - - -
diff --git a/tests/dictionaries/70container_files/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70container_files/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 1dd254762..000000000
--- a/tests/dictionaries/70container_files/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
diff --git a/tests/dictionaries/70container_files/tiramisu/base.py b/tests/dictionaries/70container_files/tiramisu/base.py
deleted file mode 100644
index 910ef1107..000000000
--- a/tests/dictionaries/70container_files/tiramisu/base.py
+++ /dev/null
@@ -1,43 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_8 = StrOption(name="source", doc="source", default="mailname")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="mailname", doc="mailname", children=[option_7, option_8, option_6])
-option_11 = FilenameOption(name="name", doc="name", default="/rougail.conf")
-option_12 = StrOption(name="source", doc="source", default="rougail.conf")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="rougail_conf", doc="rougail.conf", children=[option_11, option_12, option_10])
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_16 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_13])
-optiondescription_16.impl_set_information('type', "service")
-optiondescription_15 = OptionDescription(name="services", doc="services", children=[optiondescription_16], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_14, optiondescription_15])
diff --git a/tests/dictionaries/70container_files/tmpl/mailname b/tests/dictionaries/70container_files/tmpl/mailname
deleted file mode 100644
index 3ae41fab2..000000000
--- a/tests/dictionaries/70container_files/tmpl/mailname
+++ /dev/null
@@ -1,6 +0,0 @@
-%if %%varExists('mode_conteneur_actif')
-%%mode_conteneur_actif
-%end if
-%if %%varExists('mode_conteneur_actif3')
-%%mode_conteneur_actif3
-%end if
diff --git a/tests/dictionaries/70container_files/tmpl/rougail.conf b/tests/dictionaries/70container_files/tmpl/rougail.conf
deleted file mode 100644
index b023342ea..000000000
--- a/tests/dictionaries/70container_files/tmpl/rougail.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-%for %%service in %%services
- %if %%hasattr(%%service, 'files')
- %for %%file in %%service.files
- %if %%file.name != %%rougail_filename and %%hasattr(%%file, 'activate') and %%file.activate == True
-C %%file.name 0%%file.mode %%file.owner %%file.group - /usr/local/share/factory%%file.name
-z %%file.name - - - - -
- %end if
- %end for
- %end if
-%end for
diff --git a/tests/dictionaries/70container_files_symlink_multi/makedict/after.json b/tests/dictionaries/70container_files_symlink_multi/makedict/after.json
deleted file mode 100644
index 83931d921..000000000
--- a/tests/dictionaries/70container_files_symlink_multi/makedict/after.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "rougail.file_name": {
- "owner": "default",
- "value": [
- "/etc/mailname",
- "/etc/mailname2"
- ]
- },
- "rougail.file_name2": {
- "owner": "default",
- "value": [
- "/etc/mailname3",
- "/etc/mailname4"
- ]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": [
- "/etc/mailname",
- "/etc/mailname2"
- ]
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": [
- "/etc/mailname3",
- "/etc/mailname4"
- ]
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_files_symlink_multi/makedict/base.json b/tests/dictionaries/70container_files_symlink_multi/makedict/base.json
deleted file mode 100644
index 5bea627c6..000000000
--- a/tests/dictionaries/70container_files_symlink_multi/makedict/base.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "rougail.file_name": [
- "/etc/mailname",
- "/etc/mailname2"
- ],
- "rougail.file_name2": [
- "/etc/mailname3",
- "/etc/mailname4"
- ],
- "services.test_service.files.mailname.name": [
- "/etc/mailname",
- "/etc/mailname2"
- ],
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.activate": true,
- "services.test_service.files.mailname2.name": [
- "/etc/mailname3",
- "/etc/mailname4"
- ],
- "services.test_service.files.mailname2.source": "mailname2",
- "services.test_service.files.mailname2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70container_files_symlink_multi/makedict/before.json b/tests/dictionaries/70container_files_symlink_multi/makedict/before.json
deleted file mode 100644
index 83931d921..000000000
--- a/tests/dictionaries/70container_files_symlink_multi/makedict/before.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "rougail.file_name": {
- "owner": "default",
- "value": [
- "/etc/mailname",
- "/etc/mailname2"
- ]
- },
- "rougail.file_name2": {
- "owner": "default",
- "value": [
- "/etc/mailname3",
- "/etc/mailname4"
- ]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": [
- "/etc/mailname",
- "/etc/mailname2"
- ]
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": [
- "/etc/mailname3",
- "/etc/mailname4"
- ]
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_files_symlink_multi/result/etc/mailname b/tests/dictionaries/70container_files_symlink_multi/result/etc/mailname
deleted file mode 100644
index 1a03818dc..000000000
--- a/tests/dictionaries/70container_files_symlink_multi/result/etc/mailname
+++ /dev/null
@@ -1 +0,0 @@
-/etc/mailname
diff --git a/tests/dictionaries/70container_files_symlink_multi/result/etc/mailname2 b/tests/dictionaries/70container_files_symlink_multi/result/etc/mailname2
deleted file mode 100644
index 03e217966..000000000
--- a/tests/dictionaries/70container_files_symlink_multi/result/etc/mailname2
+++ /dev/null
@@ -1 +0,0 @@
-/etc/mailname2
diff --git a/tests/dictionaries/70container_files_symlink_multi/result/etc/mailname3 b/tests/dictionaries/70container_files_symlink_multi/result/etc/mailname3
deleted file mode 100644
index 2585efaa0..000000000
--- a/tests/dictionaries/70container_files_symlink_multi/result/etc/mailname3
+++ /dev/null
@@ -1 +0,0 @@
-/etc/mailname3
diff --git a/tests/dictionaries/70container_files_symlink_multi/result/etc/mailname4 b/tests/dictionaries/70container_files_symlink_multi/result/etc/mailname4
deleted file mode 100644
index d58aef4bf..000000000
--- a/tests/dictionaries/70container_files_symlink_multi/result/etc/mailname4
+++ /dev/null
@@ -1 +0,0 @@
-/etc/mailname4
diff --git a/tests/dictionaries/70container_files_symlink_multi/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70container_files_symlink_multi/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 82371221b..000000000
--- a/tests/dictionaries/70container_files_symlink_multi/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
-C /etc/mailname2 0644 root root - /usr/local/lib/etc/mailname2
-C /etc/mailname3 0644 root root - /usr/local/lib/etc/mailname3
-C /etc/mailname4 0644 root root - /usr/local/lib/etc/mailname4
diff --git a/tests/dictionaries/70container_files_symlink_multi/tiramisu/base.py b/tests/dictionaries/70container_files_symlink_multi/tiramisu/base.py
deleted file mode 100644
index 07eddfd9e..000000000
--- a/tests/dictionaries/70container_files_symlink_multi/tiramisu/base.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = FilenameOption(name="file_name", doc="file_name", multi=True, default=['/etc/mailname', '/etc/mailname2'], default_multi="/etc/mailname", properties=frozenset({"mandatory", "normal"}))
-option_2 = FilenameOption(name="file_name2", doc="file_name2", multi=True, default=['/etc/mailname3', '/etc/mailname4'], default_multi="/etc/mailname3", properties=frozenset({"mandatory", "normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_7 = SymLinkOption(name="name", opt=option_1)
-option_8 = StrOption(name="source", doc="source", default="mailname")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="mailname", doc="mailname", children=[option_7, option_8, option_6])
-option_11 = SymLinkOption(name="name", opt=option_2)
-option_12 = StrOption(name="source", doc="source", default="mailname2")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="mailname2", doc="mailname2", children=[option_11, option_12, option_10])
-optiondescription_9.impl_set_information('engine', "jinja")
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_16 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_13])
-optiondescription_16.impl_set_information('type', "service")
-optiondescription_15 = OptionDescription(name="services", doc="services", children=[optiondescription_16], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_14, optiondescription_15])
diff --git a/tests/dictionaries/70container_files_symlink_multi/tmpl/mailname b/tests/dictionaries/70container_files_symlink_multi/tmpl/mailname
deleted file mode 100644
index 6a4cb4489..000000000
--- a/tests/dictionaries/70container_files_symlink_multi/tmpl/mailname
+++ /dev/null
@@ -1 +0,0 @@
-%%rougail_filename
diff --git a/tests/dictionaries/70container_files_symlink_multi/tmpl/mailname2 b/tests/dictionaries/70container_files_symlink_multi/tmpl/mailname2
deleted file mode 100644
index 32fea5cb4..000000000
--- a/tests/dictionaries/70container_files_symlink_multi/tmpl/mailname2
+++ /dev/null
@@ -1 +0,0 @@
-{{ rougail_filename }}
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/makedict/after.json b/tests/dictionaries/70container_files_symlink_multi_variable/makedict/after.json
deleted file mode 100644
index 8cc22a152..000000000
--- a/tests/dictionaries/70container_files_symlink_multi_variable/makedict/after.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "rougail.file_name": {
- "owner": "default",
- "value": [
- "/etc/mailname",
- "/etc/mailname2"
- ]
- },
- "rougail.file_name2": {
- "owner": "default",
- "value": [
- "/etc/mailname3",
- "/etc/mailname4"
- ]
- },
- "rougail.var": {
- "owner": "default",
- "value": [
- "mailname",
- "mailname2"
- ]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": [
- "/etc/mailname",
- "/etc/mailname2"
- ]
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.variable": {
- "owner": "default",
- "value": [
- "mailname",
- "mailname2"
- ]
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": [
- "/etc/mailname3",
- "/etc/mailname4"
- ]
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.variable": {
- "owner": "default",
- "value": [
- "mailname",
- "mailname2"
- ]
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/makedict/base.json b/tests/dictionaries/70container_files_symlink_multi_variable/makedict/base.json
deleted file mode 100644
index 2f4d119d9..000000000
--- a/tests/dictionaries/70container_files_symlink_multi_variable/makedict/base.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "rougail.file_name": [
- "/etc/mailname",
- "/etc/mailname2"
- ],
- "rougail.file_name2": [
- "/etc/mailname3",
- "/etc/mailname4"
- ],
- "rougail.var": [
- "mailname",
- "mailname2"
- ],
- "services.test_service.files.mailname.name": [
- "/etc/mailname",
- "/etc/mailname2"
- ],
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.variable": [
- "mailname",
- "mailname2"
- ],
- "services.test_service.files.mailname.activate": true,
- "services.test_service.files.mailname2.name": [
- "/etc/mailname3",
- "/etc/mailname4"
- ],
- "services.test_service.files.mailname2.source": "mailname2",
- "services.test_service.files.mailname2.variable": [
- "mailname",
- "mailname2"
- ],
- "services.test_service.files.mailname2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/makedict/before.json b/tests/dictionaries/70container_files_symlink_multi_variable/makedict/before.json
deleted file mode 100644
index 8cc22a152..000000000
--- a/tests/dictionaries/70container_files_symlink_multi_variable/makedict/before.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "rougail.file_name": {
- "owner": "default",
- "value": [
- "/etc/mailname",
- "/etc/mailname2"
- ]
- },
- "rougail.file_name2": {
- "owner": "default",
- "value": [
- "/etc/mailname3",
- "/etc/mailname4"
- ]
- },
- "rougail.var": {
- "owner": "default",
- "value": [
- "mailname",
- "mailname2"
- ]
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": [
- "/etc/mailname",
- "/etc/mailname2"
- ]
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.variable": {
- "owner": "default",
- "value": [
- "mailname",
- "mailname2"
- ]
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": [
- "/etc/mailname3",
- "/etc/mailname4"
- ]
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.variable": {
- "owner": "default",
- "value": [
- "mailname",
- "mailname2"
- ]
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/result/etc/mailname b/tests/dictionaries/70container_files_symlink_multi_variable/result/etc/mailname
deleted file mode 100644
index 0288f489b..000000000
--- a/tests/dictionaries/70container_files_symlink_multi_variable/result/etc/mailname
+++ /dev/null
@@ -1 +0,0 @@
-mailname
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/result/etc/mailname2 b/tests/dictionaries/70container_files_symlink_multi_variable/result/etc/mailname2
deleted file mode 100644
index 80d43ca54..000000000
--- a/tests/dictionaries/70container_files_symlink_multi_variable/result/etc/mailname2
+++ /dev/null
@@ -1 +0,0 @@
-mailname2
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/result/etc/mailname3 b/tests/dictionaries/70container_files_symlink_multi_variable/result/etc/mailname3
deleted file mode 100644
index 0288f489b..000000000
--- a/tests/dictionaries/70container_files_symlink_multi_variable/result/etc/mailname3
+++ /dev/null
@@ -1 +0,0 @@
-mailname
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/result/etc/mailname4 b/tests/dictionaries/70container_files_symlink_multi_variable/result/etc/mailname4
deleted file mode 100644
index 80d43ca54..000000000
--- a/tests/dictionaries/70container_files_symlink_multi_variable/result/etc/mailname4
+++ /dev/null
@@ -1 +0,0 @@
-mailname2
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70container_files_symlink_multi_variable/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 82371221b..000000000
--- a/tests/dictionaries/70container_files_symlink_multi_variable/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
-C /etc/mailname2 0644 root root - /usr/local/lib/etc/mailname2
-C /etc/mailname3 0644 root root - /usr/local/lib/etc/mailname3
-C /etc/mailname4 0644 root root - /usr/local/lib/etc/mailname4
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/tiramisu/base.py b/tests/dictionaries/70container_files_symlink_multi_variable/tiramisu/base.py
deleted file mode 100644
index 349ab3e8f..000000000
--- a/tests/dictionaries/70container_files_symlink_multi_variable/tiramisu/base.py
+++ /dev/null
@@ -1,47 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = FilenameOption(name="file_name", doc="file_name", multi=True, default=['/etc/mailname', '/etc/mailname2'], default_multi="/etc/mailname", properties=frozenset({"mandatory", "normal"}))
-option_2 = FilenameOption(name="file_name2", doc="file_name2", multi=True, default=['/etc/mailname3', '/etc/mailname4'], default_multi="/etc/mailname3", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="var", doc="var", multi=True, default=['mailname', 'mailname2'], default_multi="mailname", properties=frozenset({"mandatory", "normal"}))
-optiondescription_17 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3], properties=frozenset({"normal"}))
-option_8 = SymLinkOption(name="name", opt=option_1)
-option_9 = StrOption(name="source", doc="source", default="mailname")
-option_10 = SymLinkOption(name="variable", opt=option_3)
-option_7 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_6 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10, option_7])
-option_13 = SymLinkOption(name="name", opt=option_2)
-option_14 = StrOption(name="source", doc="source", default="mailname2")
-option_15 = SymLinkOption(name="variable", opt=option_3)
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_11 = OptionDescription(name="mailname2", doc="mailname2", children=[option_13, option_14, option_15, option_12])
-optiondescription_11.impl_set_information('engine', "jinja")
-optiondescription_5 = OptionDescription(name="files", doc="files", children=[optiondescription_6, optiondescription_11])
-option_4 = BoolOption(name="activate", doc="activate", default=True)
-option_16 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_19 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_5, option_4, option_16])
-optiondescription_19.impl_set_information('type', "service")
-optiondescription_18 = OptionDescription(name="services", doc="services", children=[optiondescription_19], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_18])
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/tmpl/mailname b/tests/dictionaries/70container_files_symlink_multi_variable/tmpl/mailname
deleted file mode 100644
index 5ecb01bbb..000000000
--- a/tests/dictionaries/70container_files_symlink_multi_variable/tmpl/mailname
+++ /dev/null
@@ -1 +0,0 @@
-%%rougail_variable
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/tmpl/mailname2 b/tests/dictionaries/70container_files_symlink_multi_variable/tmpl/mailname2
deleted file mode 100644
index 256954446..000000000
--- a/tests/dictionaries/70container_files_symlink_multi_variable/tmpl/mailname2
+++ /dev/null
@@ -1 +0,0 @@
-{{ rougail_variable }}
diff --git a/tests/dictionaries/70container_files_symlink_variable/makedict/after.json b/tests/dictionaries/70container_files_symlink_variable/makedict/after.json
deleted file mode 100644
index b747831d7..000000000
--- a/tests/dictionaries/70container_files_symlink_variable/makedict/after.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "rougail.file_name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "rougail.var": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.variable": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_files_symlink_variable/makedict/base.json b/tests/dictionaries/70container_files_symlink_variable/makedict/base.json
deleted file mode 100644
index 0a2aa4556..000000000
--- a/tests/dictionaries/70container_files_symlink_variable/makedict/base.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.file_name": "/etc/mailname",
- "rougail.var": "mailname",
- "services.test_service.files.mailname.name": "/etc/mailname",
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.variable": "mailname",
- "services.test_service.files.mailname.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70container_files_symlink_variable/makedict/before.json b/tests/dictionaries/70container_files_symlink_variable/makedict/before.json
deleted file mode 100644
index b747831d7..000000000
--- a/tests/dictionaries/70container_files_symlink_variable/makedict/before.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "rougail.file_name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "rougail.var": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.variable": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_files_symlink_variable/result/etc/mailname b/tests/dictionaries/70container_files_symlink_variable/result/etc/mailname
deleted file mode 100644
index 0288f489b..000000000
--- a/tests/dictionaries/70container_files_symlink_variable/result/etc/mailname
+++ /dev/null
@@ -1 +0,0 @@
-mailname
diff --git a/tests/dictionaries/70container_files_symlink_variable/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70container_files_symlink_variable/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index 1dd254762..000000000
--- a/tests/dictionaries/70container_files_symlink_variable/result/tmpfiles.d/0rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
diff --git a/tests/dictionaries/70container_files_symlink_variable/tiramisu/base.py b/tests/dictionaries/70container_files_symlink_variable/tiramisu/base.py
deleted file mode 100644
index d15d60711..000000000
--- a/tests/dictionaries/70container_files_symlink_variable/tiramisu/base.py
+++ /dev/null
@@ -1,40 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = FilenameOption(name="file_name", doc="file_name", default="/etc/mailname", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="var", doc="var", default="mailname", properties=frozenset({"mandatory", "normal"}))
-optiondescription_11 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_7 = SymLinkOption(name="name", opt=option_1)
-option_8 = StrOption(name="source", doc="source", default="mailname")
-option_9 = SymLinkOption(name="variable", opt=option_2)
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="mailname", doc="mailname", children=[option_7, option_8, option_9, option_6])
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_13 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_10])
-optiondescription_13.impl_set_information('type', "service")
-optiondescription_12 = OptionDescription(name="services", doc="services", children=[optiondescription_13], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_12])
diff --git a/tests/dictionaries/70container_files_symlink_variable/tmpl/mailname b/tests/dictionaries/70container_files_symlink_variable/tmpl/mailname
deleted file mode 100644
index 5ecb01bbb..000000000
--- a/tests/dictionaries/70container_files_symlink_variable/tmpl/mailname
+++ /dev/null
@@ -1 +0,0 @@
-%%rougail_variable
diff --git a/tests/dictionaries/70container_files_twice/makedict/after.json b/tests/dictionaries/70container_files_twice/makedict/after.json
deleted file mode 100644
index 70edb7ece..000000000
--- a/tests/dictionaries/70container_files_twice/makedict/after.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname_1.name": {
- "owner": "default",
- "value": "/etc/eole/mailname"
- },
- "services.test_service.files.mailname_1.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname_1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.rougail_conf.name": {
- "owner": "default",
- "value": "/rougail.conf"
- },
- "services.test_service.files.rougail_conf.source": {
- "owner": "default",
- "value": "rougail.conf"
- },
- "services.test_service.files.rougail_conf.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_files_twice/makedict/base.json b/tests/dictionaries/70container_files_twice/makedict/base.json
deleted file mode 100644
index b73e7c5d2..000000000
--- a/tests/dictionaries/70container_files_twice/makedict/base.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "oui",
- "services.test_service.files.mailname.name": "/etc/mailname",
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.activate": true,
- "services.test_service.files.mailname_1.name": "/etc/eole/mailname",
- "services.test_service.files.mailname_1.source": "mailname",
- "services.test_service.files.mailname_1.activate": true,
- "services.test_service.files.rougail_conf.name": "/rougail.conf",
- "services.test_service.files.rougail_conf.source": "rougail.conf",
- "services.test_service.files.rougail_conf.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70container_files_twice/makedict/before.json b/tests/dictionaries/70container_files_twice/makedict/before.json
deleted file mode 100644
index 70edb7ece..000000000
--- a/tests/dictionaries/70container_files_twice/makedict/before.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname_1.name": {
- "owner": "default",
- "value": "/etc/eole/mailname"
- },
- "services.test_service.files.mailname_1.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname_1.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.rougail_conf.name": {
- "owner": "default",
- "value": "/rougail.conf"
- },
- "services.test_service.files.rougail_conf.source": {
- "owner": "default",
- "value": "rougail.conf"
- },
- "services.test_service.files.rougail_conf.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_files_twice/tiramisu/base.py b/tests/dictionaries/70container_files_twice/tiramisu/base.py
deleted file mode 100644
index a14b3baf1..000000000
--- a/tests/dictionaries/70container_files_twice/tiramisu/base.py
+++ /dev/null
@@ -1,47 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_8 = StrOption(name="source", doc="source", default="mailname")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="mailname", doc="mailname", children=[option_7, option_8, option_6])
-option_11 = FilenameOption(name="name", doc="name", default="/etc/eole/mailname")
-option_12 = StrOption(name="source", doc="source", default="mailname")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="mailname_1", doc="mailname_1", children=[option_11, option_12, option_10])
-option_15 = FilenameOption(name="name", doc="name", default="/rougail.conf")
-option_16 = StrOption(name="source", doc="source", default="rougail.conf")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_13 = OptionDescription(name="rougail_conf", doc="rougail.conf", children=[option_15, option_16, option_14])
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9, optiondescription_13])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_17 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_20 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_17])
-optiondescription_20.impl_set_information('type', "service")
-optiondescription_19 = OptionDescription(name="services", doc="services", children=[optiondescription_20], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_18, optiondescription_19])
diff --git a/tests/dictionaries/70container_filesmulti/makedict/after.json b/tests/dictionaries/70container_filesmulti/makedict/after.json
deleted file mode 100644
index 9dcd12d2d..000000000
--- a/tests/dictionaries/70container_filesmulti/makedict/after.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_filesmulti/makedict/base.json b/tests/dictionaries/70container_filesmulti/makedict/base.json
deleted file mode 100644
index a65849733..000000000
--- a/tests/dictionaries/70container_filesmulti/makedict/base.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "oui",
- "services.test_service.files.mailname.name": "/etc/mailname",
- "services.test_service.files.mailname.source": "mailname",
- "services.test_service.files.mailname.activate": true,
- "services.test_service.files.mailname2.name": "/etc/mailname2",
- "services.test_service.files.mailname2.source": "mailname2",
- "services.test_service.files.mailname2.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70container_filesmulti/makedict/before.json b/tests/dictionaries/70container_filesmulti/makedict/before.json
deleted file mode 100644
index 9dcd12d2d..000000000
--- a/tests/dictionaries/70container_filesmulti/makedict/before.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "services.test_service.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname.source": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test_service.files.mailname2.source": {
- "owner": "default",
- "value": "mailname2"
- },
- "services.test_service.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_filesmulti/tiramisu/base.py b/tests/dictionaries/70container_filesmulti/tiramisu/base.py
deleted file mode 100644
index 1ae0188ae..000000000
--- a/tests/dictionaries/70container_filesmulti/tiramisu/base.py
+++ /dev/null
@@ -1,43 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_8 = StrOption(name="source", doc="source", default="mailname")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="mailname", doc="mailname", children=[option_7, option_8, option_6])
-option_11 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_12 = StrOption(name="source", doc="source", default="mailname2")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_9 = OptionDescription(name="mailname2", doc="mailname2", children=[option_11, option_12, option_10])
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5, optiondescription_9])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_16 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_13])
-optiondescription_16.impl_set_information('type', "service")
-optiondescription_15 = OptionDescription(name="services", doc="services", children=[optiondescription_16], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_14, optiondescription_15])
diff --git a/tests/dictionaries/70container_filesredefine/makedict/after.json b/tests/dictionaries/70container_filesredefine/makedict/after.json
deleted file mode 100644
index bf5c7668d..000000000
--- a/tests/dictionaries/70container_filesredefine/makedict/after.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "services.test_service.files.mailname_new.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname_new.source": {
- "owner": "default",
- "value": "mailname.new"
- },
- "services.test_service.files.mailname_new.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_filesredefine/makedict/base.json b/tests/dictionaries/70container_filesredefine/makedict/base.json
deleted file mode 100644
index 94d93f3ff..000000000
--- a/tests/dictionaries/70container_filesredefine/makedict/base.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "oui",
- "services.test_service.files.mailname_new.name": "/etc/mailname",
- "services.test_service.files.mailname_new.source": "mailname.new",
- "services.test_service.files.mailname_new.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70container_filesredefine/makedict/before.json b/tests/dictionaries/70container_filesredefine/makedict/before.json
deleted file mode 100644
index bf5c7668d..000000000
--- a/tests/dictionaries/70container_filesredefine/makedict/before.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "services.test_service.files.mailname_new.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test_service.files.mailname_new.source": {
- "owner": "default",
- "value": "mailname.new"
- },
- "services.test_service.files.mailname_new.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_filesredefine/tiramisu/base.py b/tests/dictionaries/70container_filesredefine/tiramisu/base.py
deleted file mode 100644
index fea652256..000000000
--- a/tests/dictionaries/70container_filesredefine/tiramisu/base.py
+++ /dev/null
@@ -1,39 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_8 = StrOption(name="source", doc="source", default="mailname.new")
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="mailname_new", doc="mailname.new", children=[option_7, option_8, option_6])
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_9 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_12 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_9])
-optiondescription_12.impl_set_information('type', "service")
-optiondescription_11 = OptionDescription(name="services", doc="services", children=[optiondescription_12], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_10, optiondescription_11])
diff --git a/tests/dictionaries/70container_new/makedict/after.json b/tests/dictionaries/70container_new/makedict/after.json
deleted file mode 100644
index 9563ea8fd..000000000
--- a/tests/dictionaries/70container_new/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_new/makedict/base.json b/tests/dictionaries/70container_new/makedict/base.json
deleted file mode 100644
index 18151a282..000000000
--- a/tests/dictionaries/70container_new/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "oui",
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70container_new/makedict/before.json b/tests/dictionaries/70container_new/makedict/before.json
deleted file mode 100644
index 9563ea8fd..000000000
--- a/tests/dictionaries/70container_new/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_new/tiramisu/base.py b/tests/dictionaries/70container_new/tiramisu/base.py
deleted file mode 100644
index 29558a849..000000000
--- a/tests/dictionaries/70container_new/tiramisu/base.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_4 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_7 = OptionDescription(name="test_service", doc="test.service", children=[option_3, option_4])
-optiondescription_7.impl_set_information('type', "service")
-optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_6])
diff --git a/tests/dictionaries/70container_newnocont/makedict/after.json b/tests/dictionaries/70container_newnocont/makedict/after.json
deleted file mode 100644
index 6252cc155..000000000
--- a/tests/dictionaries/70container_newnocont/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_newnocont/makedict/base.json b/tests/dictionaries/70container_newnocont/makedict/base.json
deleted file mode 100644
index 69cfb362c..000000000
--- a/tests/dictionaries/70container_newnocont/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70container_newnocont/makedict/before.json b/tests/dictionaries/70container_newnocont/makedict/before.json
deleted file mode 100644
index 6252cc155..000000000
--- a/tests/dictionaries/70container_newnocont/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_newnocont/tiramisu/base.py b/tests/dictionaries/70container_newnocont/tiramisu/base.py
deleted file mode 100644
index e87100060..000000000
--- a/tests/dictionaries/70container_newnocont/tiramisu/base.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_4 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_7 = OptionDescription(name="test_service", doc="test.service", children=[option_3, option_4])
-optiondescription_7.impl_set_information('type', "service")
-optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_6])
diff --git a/tests/dictionaries/70container_newwithip/makedict/after.json b/tests/dictionaries/70container_newwithip/makedict/after.json
deleted file mode 100644
index fc73e6e57..000000000
--- a/tests/dictionaries/70container_newwithip/makedict/after.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "rougail.general.adresse_ip_test": {
- "owner": "default",
- "value": null
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_newwithip/makedict/base.json b/tests/dictionaries/70container_newwithip/makedict/base.json
deleted file mode 100644
index fe91c390c..000000000
--- a/tests/dictionaries/70container_newwithip/makedict/base.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "oui",
- "rougail.general.adresse_ip_test": null,
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70container_newwithip/makedict/before.json b/tests/dictionaries/70container_newwithip/makedict/before.json
deleted file mode 100644
index fc73e6e57..000000000
--- a/tests/dictionaries/70container_newwithip/makedict/before.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "rougail.general.adresse_ip_test": {
- "owner": "default",
- "value": null
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70container_newwithip/tiramisu/base.py b/tests/dictionaries/70container_newwithip/tiramisu/base.py
deleted file mode 100644
index e7f32bb63..000000000
--- a/tests/dictionaries/70container_newwithip/tiramisu/base.py
+++ /dev/null
@@ -1,35 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_3 = IPOption(name="adresse_ip_test", doc="No change", allow_reserved=True, properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
-optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_4 = BoolOption(name="activate", doc="activate", default=True)
-option_5 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_8 = OptionDescription(name="test_service", doc="test.service", children=[option_4, option_5])
-optiondescription_8.impl_set_information('type', "service")
-optiondescription_7 = OptionDescription(name="services", doc="services", children=[optiondescription_8], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_6, optiondescription_7])
diff --git a/tests/dictionaries/70container_save/makedict/after.json b/tests/dictionaries/70container_save/makedict/after.json
deleted file mode 100644
index 3a4c09536..000000000
--- a/tests/dictionaries/70container_save/makedict/after.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- }
-}
diff --git a/tests/dictionaries/70container_save/makedict/base.json b/tests/dictionaries/70container_save/makedict/base.json
deleted file mode 100644
index 50112b177..000000000
--- a/tests/dictionaries/70container_save/makedict/base.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "oui"
-}
diff --git a/tests/dictionaries/70container_save/makedict/before.json b/tests/dictionaries/70container_save/makedict/before.json
deleted file mode 100644
index 3a4c09536..000000000
--- a/tests/dictionaries/70container_save/makedict/before.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- }
-}
diff --git a/tests/dictionaries/70container_save/tiramisu/base.py b/tests/dictionaries/70container_save/tiramisu/base.py
deleted file mode 100644
index 6e7fb2a9a..000000000
--- a/tests/dictionaries/70container_save/tiramisu/base.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
diff --git a/tests/dictionaries/70service_base/tiramisu/base.py b/tests/dictionaries/70service_base/tiramisu/base.py
deleted file mode 100644
index 7f58b9a29..000000000
--- a/tests/dictionaries/70service_base/tiramisu/base.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_4 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_7 = OptionDescription(name="testsrv_service", doc="testsrv.service", children=[option_3, option_4])
-optiondescription_7.impl_set_information('type', "service")
-optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_6])
diff --git a/tests/dictionaries/70service_disabled/__init__.py b/tests/dictionaries/70service_disabled/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_disabled/result/systemd/system/test.service b/tests/dictionaries/70service_disabled/result/systemd/system/test.service
deleted file mode 120000
index dc1dc0cde..000000000
--- a/tests/dictionaries/70service_disabled/result/systemd/system/test.service
+++ /dev/null
@@ -1 +0,0 @@
-/dev/null
\ No newline at end of file
diff --git a/tests/dictionaries/70service_disabled/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70service_disabled/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_disabled/tiramisu/base.py b/tests/dictionaries/70service_disabled/tiramisu/base.py
deleted file mode 100644
index 5ef9cd3ad..000000000
--- a/tests/dictionaries/70service_disabled/tiramisu/base.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_2 = BoolOption(name="activate", doc="activate", default=False)
-option_3 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_6 = OptionDescription(name="test_service", doc="test.service", children=[option_2, option_3])
-optiondescription_6.impl_set_information('type', "service")
-optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4, optiondescription_5])
diff --git a/tests/dictionaries/70service_disabled_undisable/__init__.py b/tests/dictionaries/70service_disabled_undisable/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_disabled_undisable/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70service_disabled_undisable/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_disabled_undisable/tiramisu/base.py b/tests/dictionaries/70service_disabled_undisable/tiramisu/base.py
deleted file mode 100644
index c976887c5..000000000
--- a/tests/dictionaries/70service_disabled_undisable/tiramisu/base.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_2 = BoolOption(name="activate", doc="activate", default=False)
-option_3 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_6 = OptionDescription(name="test_service", doc="test.service", children=[option_2, option_3])
-optiondescription_6.impl_set_information('undisable', True)
-optiondescription_6.impl_set_information('type', "service")
-optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4, optiondescription_5])
diff --git a/tests/dictionaries/70service_engine/__init__.py b/tests/dictionaries/70service_engine/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_engine/result/systemd/system/testsrv.service b/tests/dictionaries/70service_engine/result/systemd/system/testsrv.service
deleted file mode 100644
index bd51bf63f..000000000
--- a/tests/dictionaries/70service_engine/result/systemd/system/testsrv.service
+++ /dev/null
@@ -1 +0,0 @@
-oui
diff --git a/tests/dictionaries/70service_engine/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70service_engine/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_engine/tiramisu/base.py b/tests/dictionaries/70service_engine/tiramisu/base.py
deleted file mode 100644
index 9cc323124..000000000
--- a/tests/dictionaries/70service_engine/tiramisu/base.py
+++ /dev/null
@@ -1,35 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_4 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_7 = OptionDescription(name="testsrv_service", doc="testsrv.service", children=[option_3, option_4])
-optiondescription_7.impl_set_information('engine', "cheetah")
-optiondescription_7.impl_set_information('type', "service")
-optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_6])
diff --git a/tests/dictionaries/70service_engine_dash/__init__.py b/tests/dictionaries/70service_engine_dash/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_engine_dash/result/systemd/system/test-srv.service b/tests/dictionaries/70service_engine_dash/result/systemd/system/test-srv.service
deleted file mode 100644
index bd51bf63f..000000000
--- a/tests/dictionaries/70service_engine_dash/result/systemd/system/test-srv.service
+++ /dev/null
@@ -1 +0,0 @@
-oui
diff --git a/tests/dictionaries/70service_engine_dash/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70service_engine_dash/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_engine_dash/tiramisu/base.py b/tests/dictionaries/70service_engine_dash/tiramisu/base.py
deleted file mode 100644
index bb1559ec1..000000000
--- a/tests/dictionaries/70service_engine_dash/tiramisu/base.py
+++ /dev/null
@@ -1,35 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_4 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_7 = OptionDescription(name="test_srv_service", doc="test-srv.service", children=[option_3, option_4])
-optiondescription_7.impl_set_information('engine', "cheetah")
-optiondescription_7.impl_set_information('type', "service")
-optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_6])
diff --git a/tests/dictionaries/70service_mount/__init__.py b/tests/dictionaries/70service_mount/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_mount/result/systemd/system/testsrv.mount b/tests/dictionaries/70service_mount/result/systemd/system/testsrv.mount
deleted file mode 100644
index bd51bf63f..000000000
--- a/tests/dictionaries/70service_mount/result/systemd/system/testsrv.mount
+++ /dev/null
@@ -1 +0,0 @@
-oui
diff --git a/tests/dictionaries/70service_mount/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70service_mount/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_mount/tiramisu/base.py b/tests/dictionaries/70service_mount/tiramisu/base.py
deleted file mode 100644
index 01f168eb2..000000000
--- a/tests/dictionaries/70service_mount/tiramisu/base.py
+++ /dev/null
@@ -1,35 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_4 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_7 = OptionDescription(name="testsrv_mount", doc="testsrv.mount", children=[option_3, option_4])
-optiondescription_7.impl_set_information('type', "mount")
-optiondescription_7.impl_set_information('engine', "cheetah")
-optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_6])
diff --git a/tests/dictionaries/70service_not_managed/__init__.py b/tests/dictionaries/70service_not_managed/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_not_managed/makedict/after.json b/tests/dictionaries/70service_not_managed/makedict/after.json
deleted file mode 100644
index 52eaee29b..000000000
--- a/tests/dictionaries/70service_not_managed/makedict/after.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "rougail.var": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.test.name": {
- "owner": "default",
- "value": "/tmp/test"
- },
- "services.test_service.files.test.source": {
- "owner": "default",
- "value": "test"
- },
- "services.test_service.files.test.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries/70service_not_managed/makedict/base.json b/tests/dictionaries/70service_not_managed/makedict/base.json
deleted file mode 100644
index 45259b561..000000000
--- a/tests/dictionaries/70service_not_managed/makedict/base.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "rougail.var": "mailname",
- "services.test_service.files.test.name": "/tmp/test",
- "services.test_service.files.test.source": "test",
- "services.test_service.files.test.activate": true,
- "services.test_service.activate": true,
- "services.test_service.manage": false
-}
diff --git a/tests/dictionaries/70service_not_managed/makedict/before.json b/tests/dictionaries/70service_not_managed/makedict/before.json
deleted file mode 100644
index 52eaee29b..000000000
--- a/tests/dictionaries/70service_not_managed/makedict/before.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "rougail.var": {
- "owner": "default",
- "value": "mailname"
- },
- "services.test_service.files.test.name": {
- "owner": "default",
- "value": "/tmp/test"
- },
- "services.test_service.files.test.source": {
- "owner": "default",
- "value": "test"
- },
- "services.test_service.files.test.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries/70service_not_managed/tiramisu/base.py b/tests/dictionaries/70service_not_managed/tiramisu/base.py
deleted file mode 100644
index 263cffdb3..000000000
--- a/tests/dictionaries/70service_not_managed/tiramisu/base.py
+++ /dev/null
@@ -1,38 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="var", doc="var", default="mailname", properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_6 = FilenameOption(name="name", doc="name", default="/tmp/test")
-option_7 = StrOption(name="source", doc="source", default="test")
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_4 = OptionDescription(name="test", doc="test", children=[option_6, option_7, option_5])
-optiondescription_3 = OptionDescription(name="files", doc="files", children=[optiondescription_4])
-option_2 = BoolOption(name="activate", doc="activate", default=True)
-option_8 = BoolOption(name="manage", doc="manage", default=False)
-optiondescription_11 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_3, option_2, option_8])
-optiondescription_11.impl_set_information('type', "none")
-optiondescription_10 = OptionDescription(name="services", doc="services", children=[optiondescription_11], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_10])
diff --git a/tests/dictionaries/70service_servicelist/__init__.py b/tests/dictionaries/70service_servicelist/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_servicelist/makedict/after.json b/tests/dictionaries/70service_servicelist/makedict/after.json
deleted file mode 100644
index 761b7349d..000000000
--- a/tests/dictionaries/70service_servicelist/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": "no"
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70service_servicelist/makedict/base.json b/tests/dictionaries/70service_servicelist/makedict/base.json
deleted file mode 100644
index a27d27128..000000000
--- a/tests/dictionaries/70service_servicelist/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.condition": "no",
- "services.test_service.activate": true,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70service_servicelist/makedict/before.json b/tests/dictionaries/70service_servicelist/makedict/before.json
deleted file mode 100644
index 761b7349d..000000000
--- a/tests/dictionaries/70service_servicelist/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": "no"
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70service_servicelist/tiramisu/base.py b/tests/dictionaries/70service_servicelist/tiramisu/base.py
deleted file mode 100644
index 93b4a47f9..000000000
--- a/tests/dictionaries/70service_servicelist/tiramisu/base.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_2 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_1, notraisepropertyerror=True), 'expected_0': ParamValue("yes")})))
-option_3 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_6 = OptionDescription(name="test_service", doc="test.service", children=[option_2, option_3])
-optiondescription_6.impl_set_information('type', "service")
-optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4, optiondescription_5])
diff --git a/tests/dictionaries/70service_servicelist_disabled_if_in/__init__.py b/tests/dictionaries/70service_servicelist_disabled_if_in/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_servicelist_disabled_if_in/makedict/after.json b/tests/dictionaries/70service_servicelist_disabled_if_in/makedict/after.json
deleted file mode 100644
index ba51aab90..000000000
--- a/tests/dictionaries/70service_servicelist_disabled_if_in/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.condition1": {
- "owner": "default",
- "value": "no"
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70service_servicelist_disabled_if_in/makedict/base.json b/tests/dictionaries/70service_servicelist_disabled_if_in/makedict/base.json
deleted file mode 100644
index 8626d1785..000000000
--- a/tests/dictionaries/70service_servicelist_disabled_if_in/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.condition1": "no",
- "services.test_service.activate": false,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70service_servicelist_disabled_if_in/makedict/before.json b/tests/dictionaries/70service_servicelist_disabled_if_in/makedict/before.json
deleted file mode 100644
index ba51aab90..000000000
--- a/tests/dictionaries/70service_servicelist_disabled_if_in/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.condition1": {
- "owner": "default",
- "value": "no"
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70service_servicelist_disabled_if_in/tiramisu/base.py b/tests/dictionaries/70service_servicelist_disabled_if_in/tiramisu/base.py
deleted file mode 100644
index a495bac41..000000000
--- a/tests/dictionaries/70service_servicelist_disabled_if_in/tiramisu/base.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="condition1", doc="condition1", default="no", properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="condition2", doc="condition2", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_1, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_3 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("yes")})))
-option_4 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_7 = OptionDescription(name="test_service", doc="test.service", children=[option_3, option_4])
-optiondescription_7.impl_set_information('type', "service")
-optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_6])
diff --git a/tests/dictionaries/70service_servicelist_disabled_if_in/xml/00-base.xml b/tests/dictionaries/70service_servicelist_disabled_if_in/xml/00-base.xml
deleted file mode 100644
index be734f9fd..000000000
--- a/tests/dictionaries/70service_servicelist_disabled_if_in/xml/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
- no
-
-
- no
-
-
-
-
- no
- condition2
-
-
- yes
- test
-
-
-
diff --git a/tests/dictionaries/70service_servicelist_extra/__init__.py b/tests/dictionaries/70service_servicelist_extra/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_servicelist_extra/tiramisu/base.py b/tests/dictionaries/70service_servicelist_extra/tiramisu/base.py
deleted file mode 100644
index 1ee5b9d48..000000000
--- a/tests/dictionaries/70service_servicelist_extra/tiramisu/base.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[option_1], properties=frozenset({"normal"}))
-option_2 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_1, notraisepropertyerror=True), 'expected_0': ParamValue("yes")})))
-option_3 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_6 = OptionDescription(name="test_service", doc="test.service", children=[option_2, option_3])
-optiondescription_6.impl_set_information('type', "service")
-optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4, optiondescription_5])
diff --git a/tests/dictionaries/70service_servicelist_file/__init__.py b/tests/dictionaries/70service_servicelist_file/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_servicelist_file/makedict/after.json b/tests/dictionaries/70service_servicelist_file/makedict/after.json
deleted file mode 100644
index 028c4975e..000000000
--- a/tests/dictionaries/70service_servicelist_file/makedict/after.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": "no"
- },
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70service_servicelist_file/makedict/base.json b/tests/dictionaries/70service_servicelist_file/makedict/base.json
deleted file mode 100644
index 9c84937ca..000000000
--- a/tests/dictionaries/70service_servicelist_file/makedict/base.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "rougail.condition": "no",
- "rougail.nut_monitor_host": "192.168.0.1",
- "services.test_service.files.file.name": "/etc/file",
- "services.test_service.files.file.source": "file",
- "services.test_service.files.file.activate": false,
- "services.test_service.activate": false,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70service_servicelist_file/makedict/before.json b/tests/dictionaries/70service_servicelist_file/makedict/before.json
deleted file mode 100644
index 028c4975e..000000000
--- a/tests/dictionaries/70service_servicelist_file/makedict/before.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": "no"
- },
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "services.test_service.files.file.name": {
- "owner": "default",
- "value": "/etc/file"
- },
- "services.test_service.files.file.source": {
- "owner": "default",
- "value": "file"
- },
- "services.test_service.files.file.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70service_servicelist_file/result/systemd/system/test.service b/tests/dictionaries/70service_servicelist_file/result/systemd/system/test.service
deleted file mode 120000
index dc1dc0cde..000000000
--- a/tests/dictionaries/70service_servicelist_file/result/systemd/system/test.service
+++ /dev/null
@@ -1 +0,0 @@
-/dev/null
\ No newline at end of file
diff --git a/tests/dictionaries/70service_servicelist_file/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70service_servicelist_file/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_servicelist_file/tiramisu/base.py b/tests/dictionaries/70service_servicelist_file/tiramisu/base.py
deleted file mode 100644
index 12cf800c4..000000000
--- a/tests/dictionaries/70service_servicelist_file/tiramisu/base.py
+++ /dev/null
@@ -1,39 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-option_2 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.1", allow_reserved=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_7 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_8 = StrOption(name="source", doc="source", default="file")
-option_6 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_1, notraisepropertyerror=True), 'expected_0': ParamValue("no")})))
-optiondescription_5 = OptionDescription(name="file", doc="file", children=[option_7, option_8, option_6])
-optiondescription_4 = OptionDescription(name="files", doc="files", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_1, notraisepropertyerror=True), 'expected_0': ParamValue("no")})))
-option_9 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_12 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_9])
-optiondescription_12.impl_set_information('type', "service")
-optiondescription_11 = OptionDescription(name="services", doc="services", children=[optiondescription_12], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_10, optiondescription_11])
diff --git a/tests/dictionaries/70service_servicelist_file/tmpl/file b/tests/dictionaries/70service_servicelist_file/tmpl/file
deleted file mode 100644
index 7ecb56eb3..000000000
--- a/tests/dictionaries/70service_servicelist_file/tmpl/file
+++ /dev/null
@@ -1 +0,0 @@
-no
diff --git a/tests/dictionaries/70service_servicelist_ip/__init__.py b/tests/dictionaries/70service_servicelist_ip/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_servicelist_ip/makedict/after.json b/tests/dictionaries/70service_servicelist_ip/makedict/after.json
deleted file mode 100644
index 4edde0b79..000000000
--- a/tests/dictionaries/70service_servicelist_ip/makedict/after.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": "no"
- },
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "services.test_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "services.test_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70service_servicelist_ip/makedict/base.json b/tests/dictionaries/70service_servicelist_ip/makedict/base.json
deleted file mode 100644
index de499690e..000000000
--- a/tests/dictionaries/70service_servicelist_ip/makedict/base.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "rougail.condition": "no",
- "rougail.nut_monitor_host": "192.168.0.1",
- "services.test_service.ip.nut_monitor_host.name": "192.168.0.1",
- "services.test_service.ip.nut_monitor_host.activate": true,
- "services.test_service.activate": false,
- "services.test_service.manage": true
-}
diff --git a/tests/dictionaries/70service_servicelist_ip/makedict/before.json b/tests/dictionaries/70service_servicelist_ip/makedict/before.json
deleted file mode 100644
index 4edde0b79..000000000
--- a/tests/dictionaries/70service_servicelist_ip/makedict/before.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": "no"
- },
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "services.test_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "services.test_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": false
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70service_servicelist_ip/result/systemd/system/test.service b/tests/dictionaries/70service_servicelist_ip/result/systemd/system/test.service
deleted file mode 120000
index dc1dc0cde..000000000
--- a/tests/dictionaries/70service_servicelist_ip/result/systemd/system/test.service
+++ /dev/null
@@ -1 +0,0 @@
-/dev/null
\ No newline at end of file
diff --git a/tests/dictionaries/70service_servicelist_ip/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70service_servicelist_ip/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_servicelist_ip/tiramisu/base.py b/tests/dictionaries/70service_servicelist_ip/tiramisu/base.py
deleted file mode 100644
index 46c0b9795..000000000
--- a/tests/dictionaries/70service_servicelist_ip/tiramisu/base.py
+++ /dev/null
@@ -1,38 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-option_2 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.1", allow_reserved=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_7 = SymLinkOption(name="name", opt=option_2)
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_7, option_6])
-optiondescription_4 = OptionDescription(name="ip", doc="ip", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_1, notraisepropertyerror=True), 'expected_0': ParamValue("no")})))
-option_8 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_11 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_8])
-optiondescription_11.impl_set_information('type', "service")
-optiondescription_10 = OptionDescription(name="services", doc="services", children=[optiondescription_11], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_10])
diff --git a/tests/dictionaries/70service_servicelist_not_managed/__init__.py b/tests/dictionaries/70service_servicelist_not_managed/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_servicelist_not_managed/makedict/after.json b/tests/dictionaries/70service_servicelist_not_managed/makedict/after.json
deleted file mode 100644
index 72627c717..000000000
--- a/tests/dictionaries/70service_servicelist_not_managed/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": "no"
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries/70service_servicelist_not_managed/makedict/base.json b/tests/dictionaries/70service_servicelist_not_managed/makedict/base.json
deleted file mode 100644
index 3be6c02de..000000000
--- a/tests/dictionaries/70service_servicelist_not_managed/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.condition": "no",
- "services.test_service.activate": true,
- "services.test_service.manage": false
-}
diff --git a/tests/dictionaries/70service_servicelist_not_managed/makedict/before.json b/tests/dictionaries/70service_servicelist_not_managed/makedict/before.json
deleted file mode 100644
index 72627c717..000000000
--- a/tests/dictionaries/70service_servicelist_not_managed/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": "no"
- },
- "services.test_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.test_service.manage": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries/70service_servicelist_not_managed/tiramisu/base.py b/tests/dictionaries/70service_servicelist_not_managed/tiramisu/base.py
deleted file mode 100644
index 1badb6202..000000000
--- a/tests/dictionaries/70service_servicelist_not_managed/tiramisu/base.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_2 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_1, notraisepropertyerror=True), 'expected_0': ParamValue("yes")})))
-option_3 = BoolOption(name="manage", doc="manage", default=False)
-optiondescription_6 = OptionDescription(name="test_service", doc="test.service", children=[option_2, option_3])
-optiondescription_6.impl_set_information('type', "none")
-optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4, optiondescription_5])
diff --git a/tests/dictionaries/70service_target/__init__.py b/tests/dictionaries/70service_target/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_target/result/systemd/system/test.target.wants/testsrv.service b/tests/dictionaries/70service_target/result/systemd/system/test.target.wants/testsrv.service
deleted file mode 120000
index c8a389334..000000000
--- a/tests/dictionaries/70service_target/result/systemd/system/test.target.wants/testsrv.service
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/systemd/system/testsrv.service
\ No newline at end of file
diff --git a/tests/dictionaries/70service_target/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70service_target/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_target/tiramisu/base.py b/tests/dictionaries/70service_target/tiramisu/base.py
deleted file mode 100644
index 77c992b83..000000000
--- a/tests/dictionaries/70service_target/tiramisu/base.py
+++ /dev/null
@@ -1,35 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_4 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_7 = OptionDescription(name="testsrv_service", doc="testsrv.service", children=[option_3, option_4])
-optiondescription_7.impl_set_information('target', "test")
-optiondescription_7.impl_set_information('type', "service")
-optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_6])
diff --git a/tests/dictionaries/70service_target_engine/__init__.py b/tests/dictionaries/70service_target_engine/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_target_engine/makedict/after.json b/tests/dictionaries/70service_target_engine/makedict/after.json
deleted file mode 100644
index ef29924ce..000000000
--- a/tests/dictionaries/70service_target_engine/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "services.testsrv_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.testsrv_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70service_target_engine/makedict/base.json b/tests/dictionaries/70service_target_engine/makedict/base.json
deleted file mode 100644
index 0ffb99685..000000000
--- a/tests/dictionaries/70service_target_engine/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "oui",
- "services.testsrv_service.activate": true,
- "services.testsrv_service.manage": true
-}
diff --git a/tests/dictionaries/70service_target_engine/makedict/before.json b/tests/dictionaries/70service_target_engine/makedict/before.json
deleted file mode 100644
index ef29924ce..000000000
--- a/tests/dictionaries/70service_target_engine/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "oui"
- },
- "services.testsrv_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.testsrv_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70service_target_engine/result/systemd/system/test.target.wants/testsrv.service b/tests/dictionaries/70service_target_engine/result/systemd/system/test.target.wants/testsrv.service
deleted file mode 120000
index 4cc00d1a3..000000000
--- a/tests/dictionaries/70service_target_engine/result/systemd/system/test.target.wants/testsrv.service
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/systemd/system/testsrv.service
\ No newline at end of file
diff --git a/tests/dictionaries/70service_target_engine/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70service_target_engine/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_target_engine/tiramisu/base.py b/tests/dictionaries/70service_target_engine/tiramisu/base.py
deleted file mode 100644
index 5c126f588..000000000
--- a/tests/dictionaries/70service_target_engine/tiramisu/base.py
+++ /dev/null
@@ -1,36 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
-optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_4 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_7 = OptionDescription(name="testsrv_service", doc="testsrv.service", children=[option_3, option_4])
-optiondescription_7.impl_set_information('target', "test")
-optiondescription_7.impl_set_information('engine', "none")
-optiondescription_7.impl_set_information('type', "service")
-optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_6])
diff --git a/tests/dictionaries/70service_target_engine/tmpl/testsrv.service b/tests/dictionaries/70service_target_engine/tmpl/testsrv.service
deleted file mode 100644
index a29cfeaf3..000000000
--- a/tests/dictionaries/70service_target_engine/tmpl/testsrv.service
+++ /dev/null
@@ -1 +0,0 @@
-%%mode_conteneur_actif
diff --git a/tests/dictionaries/70service_timer/__init__.py b/tests/dictionaries/70service_timer/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_timer/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70service_timer/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70service_timer/tiramisu/base.py b/tests/dictionaries/70service_timer/tiramisu/base.py
deleted file mode 100644
index 6278ae996..000000000
--- a/tests/dictionaries/70service_timer/tiramisu/base.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = BoolOption(name="activate", doc="activate", default=True)
-option_2 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_6 = OptionDescription(name="testsrv_service", doc="testsrv.service", children=[option_1, option_2])
-optiondescription_6.impl_set_information('engine', "none")
-optiondescription_6.impl_set_information('type', "service")
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_4 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_7 = OptionDescription(name="testsrv_timer", doc="testsrv.timer", children=[option_3, option_4])
-optiondescription_7.impl_set_information('type', "timer")
-optiondescription_7.impl_set_information('engine', "none")
-optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6, optiondescription_7], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])
diff --git a/tests/dictionaries/70service_timer/tmpl/testsrv.service b/tests/dictionaries/70service_timer/tmpl/testsrv.service
deleted file mode 100644
index 24e10984f..000000000
--- a/tests/dictionaries/70service_timer/tmpl/testsrv.service
+++ /dev/null
@@ -1 +0,0 @@
-service
diff --git a/tests/dictionaries/70service_timer/tmpl/testsrv.timer b/tests/dictionaries/70service_timer/tmpl/testsrv.timer
deleted file mode 100644
index fe84f2ccb..000000000
--- a/tests/dictionaries/70service_timer/tmpl/testsrv.timer
+++ /dev/null
@@ -1 +0,0 @@
-timer
diff --git a/tests/dictionaries/70services_ip/__init__.py b/tests/dictionaries/70services_ip/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip/makedict/after.json b/tests/dictionaries/70services_ip/makedict/after.json
deleted file mode 100644
index 26fc6478f..000000000
--- a/tests/dictionaries/70services_ip/makedict/after.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip/makedict/base.json b/tests/dictionaries/70services_ip/makedict/base.json
deleted file mode 100644
index e04c43527..000000000
--- a/tests/dictionaries/70services_ip/makedict/base.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "rougail.nut_monitor_host": "192.168.0.1",
- "services.nut_service.ip.nut_monitor_host.name": "192.168.0.1",
- "services.nut_service.ip.nut_monitor_host.activate": true,
- "services.nut_service.activate": true,
- "services.nut_service.manage": true
-}
diff --git a/tests/dictionaries/70services_ip/makedict/before.json b/tests/dictionaries/70services_ip/makedict/before.json
deleted file mode 100644
index 26fc6478f..000000000
--- a/tests/dictionaries/70services_ip/makedict/before.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries/70services_ip/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index e4f6d8f05..000000000
--- a/tests/dictionaries/70services_ip/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.1
-IPAddressDeny=any
diff --git a/tests/dictionaries/70services_ip/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70services_ip/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip/tiramisu/base.py b/tests/dictionaries/70services_ip/tiramisu/base.py
deleted file mode 100644
index 877f179b3..000000000
--- a/tests/dictionaries/70services_ip/tiramisu/base.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.1", allow_reserved=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_6 = SymLinkOption(name="name", opt=option_1)
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_4 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_6, option_5])
-optiondescription_3 = OptionDescription(name="ip", doc="ip", children=[optiondescription_4])
-option_2 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_10 = OptionDescription(name="nut_service", doc="nut.service", children=[optiondescription_3, option_2, option_7])
-optiondescription_10.impl_set_information('type', "service")
-optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8, optiondescription_9])
diff --git a/tests/dictionaries/70services_ip_cidr/__init__.py b/tests/dictionaries/70services_ip_cidr/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_cidr/makedict/after.json b/tests/dictionaries/70services_ip_cidr/makedict/after.json
deleted file mode 100644
index 61c4af03d..000000000
--- a/tests/dictionaries/70services_ip_cidr/makedict/after.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_cidr/makedict/base.json b/tests/dictionaries/70services_ip_cidr/makedict/base.json
deleted file mode 100644
index f097a8d45..000000000
--- a/tests/dictionaries/70services_ip_cidr/makedict/base.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "rougail.nut_monitor_host": "192.168.0.0/24",
- "services.nut_service.ip.nut_monitor_host.name": "192.168.0.0/24",
- "services.nut_service.ip.nut_monitor_host.activate": true,
- "services.nut_service.activate": true,
- "services.nut_service.manage": true
-}
diff --git a/tests/dictionaries/70services_ip_cidr/makedict/before.json b/tests/dictionaries/70services_ip_cidr/makedict/before.json
deleted file mode 100644
index 61c4af03d..000000000
--- a/tests/dictionaries/70services_ip_cidr/makedict/before.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_cidr/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries/70services_ip_cidr/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index e1cb437d6..000000000
--- a/tests/dictionaries/70services_ip_cidr/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.0/24
-IPAddressDeny=any
diff --git a/tests/dictionaries/70services_ip_cidr/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70services_ip_cidr/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_cidr/tiramisu/base.py b/tests/dictionaries/70services_ip_cidr/tiramisu/base.py
deleted file mode 100644
index 517eb943b..000000000
--- a/tests/dictionaries/70services_ip_cidr/tiramisu/base.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.0/24", cidr=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_6 = SymLinkOption(name="name", opt=option_1)
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_4 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_6, option_5])
-optiondescription_3 = OptionDescription(name="ip", doc="ip", children=[optiondescription_4])
-option_2 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_10 = OptionDescription(name="nut_service", doc="nut.service", children=[optiondescription_3, option_2, option_7])
-optiondescription_10.impl_set_information('type', "service")
-optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8, optiondescription_9])
diff --git a/tests/dictionaries/70services_ip_disabled/__init__.py b/tests/dictionaries/70services_ip_disabled/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_disabled/makedict/after.json b/tests/dictionaries/70services_ip_disabled/makedict/after.json
deleted file mode 100644
index b6f6db5b7..000000000
--- a/tests/dictionaries/70services_ip_disabled/makedict/after.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_disabled/makedict/base.json b/tests/dictionaries/70services_ip_disabled/makedict/base.json
deleted file mode 100644
index 66baf2e0f..000000000
--- a/tests/dictionaries/70services_ip_disabled/makedict/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "services.nut_service.ip.nut_monitor_host.activate": true,
- "services.nut_service.activate": true,
- "services.nut_service.manage": true
-}
diff --git a/tests/dictionaries/70services_ip_disabled/makedict/before.json b/tests/dictionaries/70services_ip_disabled/makedict/before.json
deleted file mode 100644
index b6f6db5b7..000000000
--- a/tests/dictionaries/70services_ip_disabled/makedict/before.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_disabled/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries/70services_ip_disabled/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index 9c0580a98..000000000
--- a/tests/dictionaries/70services_ip_disabled/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-[Service]
-IPAddressDeny=any
diff --git a/tests/dictionaries/70services_ip_disabled/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70services_ip_disabled/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_disabled/tiramisu/base.py b/tests/dictionaries/70services_ip_disabled/tiramisu/base.py
deleted file mode 100644
index f52a79cb6..000000000
--- a/tests/dictionaries/70services_ip_disabled/tiramisu/base.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.1", allow_reserved=True, properties=frozenset({"disabled", "mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_6 = SymLinkOption(name="name", opt=option_1)
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_4 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_6, option_5])
-optiondescription_3 = OptionDescription(name="ip", doc="ip", children=[optiondescription_4])
-option_2 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_10 = OptionDescription(name="nut_service", doc="nut.service", children=[optiondescription_3, option_2, option_7])
-optiondescription_10.impl_set_information('type', "service")
-optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8, optiondescription_9])
diff --git a/tests/dictionaries/70services_ip_extra/__init__.py b/tests/dictionaries/70services_ip_extra/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_extra/makedict/after.json b/tests/dictionaries/70services_ip_extra/makedict/after.json
deleted file mode 100644
index 0e94fd939..000000000
--- a/tests/dictionaries/70services_ip_extra/makedict/after.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "extra.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.extra_nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.extra_nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_extra/makedict/base.json b/tests/dictionaries/70services_ip_extra/makedict/base.json
deleted file mode 100644
index b75e192ad..000000000
--- a/tests/dictionaries/70services_ip_extra/makedict/base.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "extra.nut_monitor_host": "192.168.0.0/24",
- "services.nut_service.ip.extra_nut_monitor_host.name": "192.168.0.0/24",
- "services.nut_service.ip.extra_nut_monitor_host.activate": true,
- "services.nut_service.activate": true,
- "services.nut_service.manage": true
-}
diff --git a/tests/dictionaries/70services_ip_extra/makedict/before.json b/tests/dictionaries/70services_ip_extra/makedict/before.json
deleted file mode 100644
index 0e94fd939..000000000
--- a/tests/dictionaries/70services_ip_extra/makedict/before.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "extra.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.extra_nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.extra_nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_extra/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries/70services_ip_extra/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index e1cb437d6..000000000
--- a/tests/dictionaries/70services_ip_extra/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.0/24
-IPAddressDeny=any
diff --git a/tests/dictionaries/70services_ip_extra/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70services_ip_extra/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_extra/tiramisu/base.py b/tests/dictionaries/70services_ip_extra/tiramisu/base.py
deleted file mode 100644
index b26c681ae..000000000
--- a/tests/dictionaries/70services_ip_extra/tiramisu/base.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.0/24", cidr=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="extra", doc="extra", children=[option_1], properties=frozenset({"normal"}))
-option_6 = SymLinkOption(name="name", opt=option_1)
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_4 = OptionDescription(name="extra_nut_monitor_host", doc="extra.nut_monitor_host", children=[option_6, option_5])
-optiondescription_3 = OptionDescription(name="ip", doc="ip", children=[optiondescription_4])
-option_2 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_10 = OptionDescription(name="nut_service", doc="nut.service", children=[optiondescription_3, option_2, option_7])
-optiondescription_10.impl_set_information('type', "service")
-optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8, optiondescription_9])
diff --git a/tests/dictionaries/70services_ip_extra/tiramisu/multi.py b/tests/dictionaries/70services_ip_extra/tiramisu/multi.py
deleted file mode 100644
index 82e92061d..000000000
--- a/tests/dictionaries/70services_ip_extra/tiramisu/multi.py
+++ /dev/null
@@ -1,50 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.0/24", cidr=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[option_1], properties=frozenset({"normal"}))
-option_7 = SymLinkOption(name="name", opt=option_1)
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="extra_nut_monitor_host", doc="extra.nut_monitor_host", children=[option_7, option_6])
-optiondescription_4 = OptionDescription(name="ip", doc="ip", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_8 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_18 = OptionDescription(name="nut_service", doc="nut.service", children=[optiondescription_4, option_3, option_8])
-optiondescription_18.impl_set_information('type', "service")
-optiondescription_17 = OptionDescription(name="services", doc="services", children=[optiondescription_18], properties=frozenset({"hidden"}))
-optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16, optiondescription_17])
-option_2 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.0/24", cidr=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[option_2], properties=frozenset({"normal"}))
-option_13 = SymLinkOption(name="name", opt=option_2)
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_11 = OptionDescription(name="extra_nut_monitor_host", doc="extra.nut_monitor_host", children=[option_13, option_12])
-optiondescription_10 = OptionDescription(name="ip", doc="ip", children=[optiondescription_11])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_14 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_22 = OptionDescription(name="nut_service", doc="nut.service", children=[optiondescription_10, option_9, option_14])
-optiondescription_22.impl_set_information('type', "service")
-optiondescription_21 = OptionDescription(name="services", doc="services", children=[optiondescription_22], properties=frozenset({"hidden"}))
-optiondescription_19 = OptionDescription(name="2", doc="2", children=[optiondescription_20, optiondescription_21])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_19])
diff --git a/tests/dictionaries/70services_ip_extra/xml/00-base.xml b/tests/dictionaries/70services_ip_extra/xml/00-base.xml
deleted file mode 100644
index d6fb1be87..000000000
--- a/tests/dictionaries/70services_ip_extra/xml/00-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- extra.nut_monitor_host
-
-
-
diff --git a/tests/dictionaries/70services_ip_extra/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries/70services_ip_extra/xml/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 3ddba60ec..000000000
--- a/tests/dictionaries/70services_ip_extra/xml/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- 192.168.0.0/24
-
-
-
diff --git a/tests/dictionaries/70services_ip_extra/yml/00-base.yml b/tests/dictionaries/70services_ip_extra/yml/00-base.yml
deleted file mode 100644
index 601c7f67c..000000000
--- a/tests/dictionaries/70services_ip_extra/yml/00-base.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: nut
- ip:
- - text: extra.nut_monitor_host
diff --git a/tests/dictionaries/70services_ip_extra/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries/70services_ip_extra/yml/extra_dirs/extra/00-base.yml
deleted file mode 100644
index bfe7473ba..000000000
--- a/tests/dictionaries/70services_ip_extra/yml/extra_dirs/extra/00-base.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: nut_monitor_host
- type: network_cidr
- mandatory: true
- value:
- - text: 192.168.0.0/24
diff --git a/tests/dictionaries/70services_ip_iplist/__init__.py b/tests/dictionaries/70services_ip_iplist/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_iplist/makedict/after.json b/tests/dictionaries/70services_ip_iplist/makedict/after.json
deleted file mode 100644
index 3cecac4ff..000000000
--- a/tests/dictionaries/70services_ip_iplist/makedict/after.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": "no"
- },
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_iplist/makedict/base.json b/tests/dictionaries/70services_ip_iplist/makedict/base.json
deleted file mode 100644
index aa2bd28ea..000000000
--- a/tests/dictionaries/70services_ip_iplist/makedict/base.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "rougail.condition": "no",
- "rougail.nut_monitor_host": "192.168.0.0/24",
- "services.nut_service.ip.nut_monitor_host.name": "192.168.0.0/24",
- "services.nut_service.ip.nut_monitor_host.activate": true,
- "services.nut_service.activate": true,
- "services.nut_service.manage": true
-}
diff --git a/tests/dictionaries/70services_ip_iplist/makedict/before.json b/tests/dictionaries/70services_ip_iplist/makedict/before.json
deleted file mode 100644
index 3cecac4ff..000000000
--- a/tests/dictionaries/70services_ip_iplist/makedict/before.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": "no"
- },
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_iplist/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries/70services_ip_iplist/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index e1cb437d6..000000000
--- a/tests/dictionaries/70services_ip_iplist/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.0/24
-IPAddressDeny=any
diff --git a/tests/dictionaries/70services_ip_iplist/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70services_ip_iplist/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_iplist/tiramisu/base.py b/tests/dictionaries/70services_ip_iplist/tiramisu/base.py
deleted file mode 100644
index df394edcc..000000000
--- a/tests/dictionaries/70services_ip_iplist/tiramisu/base.py
+++ /dev/null
@@ -1,38 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-option_2 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.0/24", cidr=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_1, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help)}))
-optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_7 = SymLinkOption(name="name", opt=option_2)
-option_6 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_1, notraisepropertyerror=True), 'expected_0': ParamValue("yes")})))
-optiondescription_5 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_7, option_6])
-optiondescription_4 = OptionDescription(name="ip", doc="ip", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_8 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_11 = OptionDescription(name="nut_service", doc="nut.service", children=[optiondescription_4, option_3, option_8])
-optiondescription_11.impl_set_information('type', "service")
-optiondescription_10 = OptionDescription(name="services", doc="services", children=[optiondescription_11], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_10])
diff --git a/tests/dictionaries/70services_ip_iplist2/__init__.py b/tests/dictionaries/70services_ip_iplist2/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_iplist2/makedict/after.json b/tests/dictionaries/70services_ip_iplist2/makedict/after.json
deleted file mode 100644
index 0457a2487..000000000
--- a/tests/dictionaries/70services_ip_iplist2/makedict/after.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": "yes"
- },
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": false
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_iplist2/makedict/base.json b/tests/dictionaries/70services_ip_iplist2/makedict/base.json
deleted file mode 100644
index f65181923..000000000
--- a/tests/dictionaries/70services_ip_iplist2/makedict/base.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "rougail.condition": "yes",
- "rougail.nut_monitor_host": "192.168.0.0/24",
- "services.nut_service.ip.nut_monitor_host.name": "192.168.0.0/24",
- "services.nut_service.ip.nut_monitor_host.activate": false,
- "services.nut_service.activate": true,
- "services.nut_service.manage": true
-}
diff --git a/tests/dictionaries/70services_ip_iplist2/makedict/before.json b/tests/dictionaries/70services_ip_iplist2/makedict/before.json
deleted file mode 100644
index 0457a2487..000000000
--- a/tests/dictionaries/70services_ip_iplist2/makedict/before.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "rougail.condition": {
- "owner": "default",
- "value": "yes"
- },
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.0/24"
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": false
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_iplist2/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70services_ip_iplist2/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_iplist2/tiramisu/base.py b/tests/dictionaries/70services_ip_iplist2/tiramisu/base.py
deleted file mode 100644
index b9de4653a..000000000
--- a/tests/dictionaries/70services_ip_iplist2/tiramisu/base.py
+++ /dev/null
@@ -1,38 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = StrOption(name="condition", doc="condition", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_2 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.0/24", cidr=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_7 = SymLinkOption(name="name", opt=option_2)
-option_6 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_1, notraisepropertyerror=True), 'expected_0': ParamValue("yes")})))
-optiondescription_5 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_7, option_6])
-optiondescription_4 = OptionDescription(name="ip", doc="ip", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_8 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_11 = OptionDescription(name="nut_service", doc="nut.service", children=[optiondescription_4, option_3, option_8])
-optiondescription_11.impl_set_information('type', "service")
-optiondescription_10 = OptionDescription(name="services", doc="services", children=[optiondescription_11], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_10])
diff --git a/tests/dictionaries/70services_ip_leadership/__init__.py b/tests/dictionaries/70services_ip_leadership/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_leadership/makedict/after.json b/tests/dictionaries/70services_ip_leadership/makedict/after.json
deleted file mode 100644
index 60c801feb..000000000
--- a/tests/dictionaries/70services_ip_leadership/makedict/after.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "rougail.general.nut_monitor_netmask.nut_monitor_netmask": {
- "owner": "default",
- "value": [
- "255.255.255.0"
- ]
- },
- "rougail.general.nut_monitor_netmask.nut_monitor_host": {
- "owner": [
- "default"
- ],
- "value": [
- "192.168.1.0"
- ]
- },
- "services.ntp_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": [
- "192.168.1.0"
- ]
- },
- "services.ntp_service.ip.nut_monitor_host.netmask": {
- "owner": "default",
- "value": [
- "255.255.255.0"
- ]
- },
- "services.ntp_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.ntp_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.ntp_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_leadership/makedict/base.json b/tests/dictionaries/70services_ip_leadership/makedict/base.json
deleted file mode 100644
index 074d42067..000000000
--- a/tests/dictionaries/70services_ip_leadership/makedict/base.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "rougail.general.nut_monitor_netmask.nut_monitor_netmask": [
- {
- "rougail.general.nut_monitor_netmask.nut_monitor_netmask": "255.255.255.0",
- "rougail.general.nut_monitor_netmask.nut_monitor_host": "192.168.1.0"
- }
- ],
- "services.ntp_service.ip.nut_monitor_host.name": [
- "192.168.1.0"
- ],
- "services.ntp_service.ip.nut_monitor_host.netmask": [
- "255.255.255.0"
- ],
- "services.ntp_service.ip.nut_monitor_host.activate": true,
- "services.ntp_service.activate": true,
- "services.ntp_service.manage": true
-}
diff --git a/tests/dictionaries/70services_ip_leadership/makedict/before.json b/tests/dictionaries/70services_ip_leadership/makedict/before.json
deleted file mode 100644
index 60c801feb..000000000
--- a/tests/dictionaries/70services_ip_leadership/makedict/before.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "rougail.general.nut_monitor_netmask.nut_monitor_netmask": {
- "owner": "default",
- "value": [
- "255.255.255.0"
- ]
- },
- "rougail.general.nut_monitor_netmask.nut_monitor_host": {
- "owner": [
- "default"
- ],
- "value": [
- "192.168.1.0"
- ]
- },
- "services.ntp_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": [
- "192.168.1.0"
- ]
- },
- "services.ntp_service.ip.nut_monitor_host.netmask": {
- "owner": "default",
- "value": [
- "255.255.255.0"
- ]
- },
- "services.ntp_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.ntp_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.ntp_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_leadership/result/systemd/system/ntp.service.d/rougail_ip.conf b/tests/dictionaries/70services_ip_leadership/result/systemd/system/ntp.service.d/rougail_ip.conf
deleted file mode 100644
index d330de8da..000000000
--- a/tests/dictionaries/70services_ip_leadership/result/systemd/system/ntp.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[Service]
-IPAddressAllow=192.168.1.0/24
-IPAddressDeny=any
diff --git a/tests/dictionaries/70services_ip_leadership/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70services_ip_leadership/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_leadership/tiramisu/base.py b/tests/dictionaries/70services_ip_leadership/tiramisu/base.py
deleted file mode 100644
index a39ccbaff..000000000
--- a/tests/dictionaries/70services_ip_leadership/tiramisu/base.py
+++ /dev/null
@@ -1,41 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_3 = NetmaskOption(name="nut_monitor_netmask", doc="nut_monitor_netmask", multi=True, default=['255.255.255.0'], properties=frozenset({"mandatory", "normal"}))
-option_4 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", multi=True, default_multi="192.168.1.0", properties=frozenset({"mandatory", "normal"}))
-optiondescription_2 = Leadership(name="nut_monitor_netmask", doc="nut_monitor_netmask", children=[option_3, option_4], properties=frozenset({"normal"}))
-optiondescription_1 = OptionDescription(name="general", doc="général", children=[optiondescription_2], properties=frozenset({"normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
-option_9 = SymLinkOption(name="name", opt=option_4)
-option_10 = SymLinkOption(name="netmask", opt=option_3)
-option_8 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_7 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_9, option_10, option_8])
-optiondescription_6 = OptionDescription(name="ip", doc="ip", children=[optiondescription_7])
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="ntp_service", doc="ntp.service", children=[optiondescription_6, option_5, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
diff --git a/tests/dictionaries/70services_ip_multi/__init__.py b/tests/dictionaries/70services_ip_multi/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_multi/makedict/after.json b/tests/dictionaries/70services_ip_multi/makedict/after.json
deleted file mode 100644
index 3d67a556c..000000000
--- a/tests/dictionaries/70services_ip_multi/makedict/after.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": [
- "192.168.0.1",
- "192.168.0.2"
- ]
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": [
- "192.168.0.1",
- "192.168.0.2"
- ]
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_multi/makedict/base.json b/tests/dictionaries/70services_ip_multi/makedict/base.json
deleted file mode 100644
index 72e97674b..000000000
--- a/tests/dictionaries/70services_ip_multi/makedict/base.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "rougail.nut_monitor_host": [
- "192.168.0.1",
- "192.168.0.2"
- ],
- "services.nut_service.ip.nut_monitor_host.name": [
- "192.168.0.1",
- "192.168.0.2"
- ],
- "services.nut_service.ip.nut_monitor_host.activate": true,
- "services.nut_service.activate": true,
- "services.nut_service.manage": true
-}
diff --git a/tests/dictionaries/70services_ip_multi/makedict/before.json b/tests/dictionaries/70services_ip_multi/makedict/before.json
deleted file mode 100644
index 3d67a556c..000000000
--- a/tests/dictionaries/70services_ip_multi/makedict/before.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": [
- "192.168.0.1",
- "192.168.0.2"
- ]
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": [
- "192.168.0.1",
- "192.168.0.2"
- ]
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_multi/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries/70services_ip_multi/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index c1dc19684..000000000
--- a/tests/dictionaries/70services_ip_multi/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.1
-IPAddressAllow=192.168.0.2
-IPAddressDeny=any
diff --git a/tests/dictionaries/70services_ip_multi/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70services_ip_multi/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_multi/tiramisu/base.py b/tests/dictionaries/70services_ip_multi/tiramisu/base.py
deleted file mode 100644
index 9016bcd5d..000000000
--- a/tests/dictionaries/70services_ip_multi/tiramisu/base.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", multi=True, default=['192.168.0.1', '192.168.0.2'], default_multi="192.168.0.1", allow_reserved=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_6 = SymLinkOption(name="name", opt=option_1)
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_4 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_6, option_5])
-optiondescription_3 = OptionDescription(name="ip", doc="ip", children=[optiondescription_4])
-option_2 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_10 = OptionDescription(name="nut_service", doc="nut.service", children=[optiondescription_3, option_2, option_7])
-optiondescription_10.impl_set_information('type', "service")
-optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8, optiondescription_9])
diff --git a/tests/dictionaries/70services_ip_network/__init__.py b/tests/dictionaries/70services_ip_network/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_network/makedict/after.json b/tests/dictionaries/70services_ip_network/makedict/after.json
deleted file mode 100644
index 015fba97a..000000000
--- a/tests/dictionaries/70services_ip_network/makedict/after.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "rougail.nut_monitor_netmask": {
- "owner": "default",
- "value": "255.255.255.0"
- },
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.0"
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.0"
- },
- "services.nut_service.ip.nut_monitor_host.netmask": {
- "owner": "default",
- "value": "255.255.255.0"
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_network/makedict/base.json b/tests/dictionaries/70services_ip_network/makedict/base.json
deleted file mode 100644
index 41a76e45b..000000000
--- a/tests/dictionaries/70services_ip_network/makedict/base.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "rougail.nut_monitor_netmask": "255.255.255.0",
- "rougail.nut_monitor_host": "192.168.0.0",
- "services.nut_service.ip.nut_monitor_host.name": "192.168.0.0",
- "services.nut_service.ip.nut_monitor_host.netmask": "255.255.255.0",
- "services.nut_service.ip.nut_monitor_host.activate": true,
- "services.nut_service.activate": true,
- "services.nut_service.manage": true
-}
diff --git a/tests/dictionaries/70services_ip_network/makedict/before.json b/tests/dictionaries/70services_ip_network/makedict/before.json
deleted file mode 100644
index 015fba97a..000000000
--- a/tests/dictionaries/70services_ip_network/makedict/before.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "rougail.nut_monitor_netmask": {
- "owner": "default",
- "value": "255.255.255.0"
- },
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.0"
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.0"
- },
- "services.nut_service.ip.nut_monitor_host.netmask": {
- "owner": "default",
- "value": "255.255.255.0"
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_network/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries/70services_ip_network/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index e1cb437d6..000000000
--- a/tests/dictionaries/70services_ip_network/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.0/24
-IPAddressDeny=any
diff --git a/tests/dictionaries/70services_ip_network/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70services_ip_network/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_network/tiramisu/base.py b/tests/dictionaries/70services_ip_network/tiramisu/base.py
deleted file mode 100644
index 32c5edef8..000000000
--- a/tests/dictionaries/70services_ip_network/tiramisu/base.py
+++ /dev/null
@@ -1,39 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = NetmaskOption(name="nut_monitor_netmask", doc="nut_monitor_netmask", default="255.255.255.0", properties=frozenset({"mandatory", "normal"}))
-option_2 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.0", properties=frozenset({"mandatory", "normal"}))
-optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_7 = SymLinkOption(name="name", opt=option_2)
-option_8 = SymLinkOption(name="netmask", opt=option_1)
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_7, option_8, option_6])
-optiondescription_4 = OptionDescription(name="ip", doc="ip", children=[optiondescription_5])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_9 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_12 = OptionDescription(name="nut_service", doc="nut.service", children=[optiondescription_4, option_3, option_9])
-optiondescription_12.impl_set_information('type', "service")
-optiondescription_11 = OptionDescription(name="services", doc="services", children=[optiondescription_12], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_10, optiondescription_11])
diff --git a/tests/dictionaries/70services_ip_not_mandatory/__init__.py b/tests/dictionaries/70services_ip_not_mandatory/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_not_mandatory/makedict/after.json b/tests/dictionaries/70services_ip_not_mandatory/makedict/after.json
deleted file mode 100644
index fceae0beb..000000000
--- a/tests/dictionaries/70services_ip_not_mandatory/makedict/after.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": null
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": null
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_not_mandatory/makedict/base.json b/tests/dictionaries/70services_ip_not_mandatory/makedict/base.json
deleted file mode 100644
index 900a1b0cb..000000000
--- a/tests/dictionaries/70services_ip_not_mandatory/makedict/base.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "rougail.nut_monitor_host": null,
- "services.nut_service.ip.nut_monitor_host.name": null,
- "services.nut_service.ip.nut_monitor_host.activate": true,
- "services.nut_service.activate": true,
- "services.nut_service.manage": true
-}
diff --git a/tests/dictionaries/70services_ip_not_mandatory/makedict/before.json b/tests/dictionaries/70services_ip_not_mandatory/makedict/before.json
deleted file mode 100644
index fceae0beb..000000000
--- a/tests/dictionaries/70services_ip_not_mandatory/makedict/before.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": null
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": null
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_not_mandatory/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries/70services_ip_not_mandatory/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index 9c0580a98..000000000
--- a/tests/dictionaries/70services_ip_not_mandatory/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-[Service]
-IPAddressDeny=any
diff --git a/tests/dictionaries/70services_ip_not_mandatory/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70services_ip_not_mandatory/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_not_mandatory/tiramisu/base.py b/tests/dictionaries/70services_ip_not_mandatory/tiramisu/base.py
deleted file mode 100644
index 415f3f218..000000000
--- a/tests/dictionaries/70services_ip_not_mandatory/tiramisu/base.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", allow_reserved=True, properties=frozenset({"normal"}))
-optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
-option_6 = SymLinkOption(name="name", opt=option_1)
-option_5 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_4 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_6, option_5])
-optiondescription_3 = OptionDescription(name="ip", doc="ip", children=[optiondescription_4])
-option_2 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_10 = OptionDescription(name="nut_service", doc="nut.service", children=[optiondescription_3, option_2, option_7])
-optiondescription_10.impl_set_information('type', "service")
-optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_8, optiondescription_9])
diff --git a/tests/dictionaries/70services_ip_twice/__init__.py b/tests/dictionaries/70services_ip_twice/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_twice/makedict/after.json b/tests/dictionaries/70services_ip_twice/makedict/after.json
deleted file mode 100644
index 72a9ac458..000000000
--- a/tests/dictionaries/70services_ip_twice/makedict/after.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "rougail.nut_monitor_host2": {
- "owner": "default",
- "value": "192.168.0.2"
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.ip.nut_monitor_host2.name": {
- "owner": "default",
- "value": "192.168.0.2"
- },
- "services.nut_service.ip.nut_monitor_host2.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_twice/makedict/base.json b/tests/dictionaries/70services_ip_twice/makedict/base.json
deleted file mode 100644
index a0fd5743a..000000000
--- a/tests/dictionaries/70services_ip_twice/makedict/base.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.nut_monitor_host": "192.168.0.1",
- "rougail.nut_monitor_host2": "192.168.0.2",
- "services.nut_service.ip.nut_monitor_host.name": "192.168.0.1",
- "services.nut_service.ip.nut_monitor_host.activate": true,
- "services.nut_service.ip.nut_monitor_host2.name": "192.168.0.2",
- "services.nut_service.ip.nut_monitor_host2.activate": true,
- "services.nut_service.activate": true,
- "services.nut_service.manage": true
-}
diff --git a/tests/dictionaries/70services_ip_twice/makedict/before.json b/tests/dictionaries/70services_ip_twice/makedict/before.json
deleted file mode 100644
index 72a9ac458..000000000
--- a/tests/dictionaries/70services_ip_twice/makedict/before.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "rougail.nut_monitor_host": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "rougail.nut_monitor_host2": {
- "owner": "default",
- "value": "192.168.0.2"
- },
- "services.nut_service.ip.nut_monitor_host.name": {
- "owner": "default",
- "value": "192.168.0.1"
- },
- "services.nut_service.ip.nut_monitor_host.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.ip.nut_monitor_host2.name": {
- "owner": "default",
- "value": "192.168.0.2"
- },
- "services.nut_service.ip.nut_monitor_host2.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.activate": {
- "owner": "default",
- "value": true
- },
- "services.nut_service.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries/70services_ip_twice/no_base b/tests/dictionaries/70services_ip_twice/no_base
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_twice/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries/70services_ip_twice/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index c1dc19684..000000000
--- a/tests/dictionaries/70services_ip_twice/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.1
-IPAddressAllow=192.168.0.2
-IPAddressDeny=any
diff --git a/tests/dictionaries/70services_ip_twice/result/tmpfiles.d/0rougail.conf b/tests/dictionaries/70services_ip_twice/result/tmpfiles.d/0rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/70services_ip_twice/tiramisu/base.py b/tests/dictionaries/70services_ip_twice/tiramisu/base.py
deleted file mode 100644
index cc9c2ee34..000000000
--- a/tests/dictionaries/70services_ip_twice/tiramisu/base.py
+++ /dev/null
@@ -1,41 +0,0 @@
-from importlib.machinery import SourceFileLoader as _SourceFileLoader
-from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
-class func:
- pass
-
-def _load_functions(path):
- global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
- loader = _SourceFileLoader('func', path)
- spec = _spec_from_loader(loader.name, loader)
- func_ = _module_from_spec(spec)
- loader.exec_module(func_)
- for function in dir(func_):
- if function.startswith('_'):
- continue
- setattr(func, function, getattr(func_, function))
-_load_functions('tests/dictionaries/../eosfunc/test.py')
-try:
- from tiramisu4 import *
- from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
-except:
- from tiramisu import *
- from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
-ALLOWED_LEADER_PROPERTIES.add("basic")
-ALLOWED_LEADER_PROPERTIES.add("normal")
-ALLOWED_LEADER_PROPERTIES.add("expert")
-option_1 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.1", allow_reserved=True, properties=frozenset({"mandatory", "normal"}))
-option_2 = IPOption(name="nut_monitor_host2", doc="nut_monitor_host2", default="192.168.0.2", allow_reserved=True, properties=frozenset({"mandatory", "normal"}))
-optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2], properties=frozenset({"normal"}))
-option_7 = SymLinkOption(name="name", opt=option_1)
-option_6 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_5 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_7, option_6])
-option_10 = SymLinkOption(name="name", opt=option_2)
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-optiondescription_8 = OptionDescription(name="nut_monitor_host2", doc="nut_monitor_host2", children=[option_10, option_9])
-optiondescription_4 = OptionDescription(name="ip", doc="ip", children=[optiondescription_5, optiondescription_8])
-option_3 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-optiondescription_14 = OptionDescription(name="nut_service", doc="nut.service", children=[optiondescription_4, option_3, option_11])
-optiondescription_14.impl_set_information('type', "service")
-optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13])
diff --git a/tests/dictionaries/80auto_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/80auto_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..d3bb1a20f
--- /dev/null
+++ b/tests/dictionaries/80auto_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ variable:
+ type: string
+ description: No change
+ default: 'no'
+version: '1.0'
diff --git a/tests/dictionaries/80auto_family/yml/00-base.yml b/tests/dictionaries/80auto_family/yml/00-base.yml
deleted file mode 100644
index df26be0bf..000000000
--- a/tests/dictionaries/80auto_family/yml/00-base.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: variable
- type: string
- description: No change
- value:
- - text: 'no'
-constraints:
-- fill:
- - name: calc_val
- param:
- - text: oui
- target:
- - type: family
- text: general
diff --git a/tests/dictionaries/80base_file_mode_wrong_type/dictionaries/services/00-base.yml b/tests/dictionaries/80base_file_mode_wrong_type/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..51acf23a3
--- /dev/null
+++ b/tests/dictionaries/80base_file_mode_wrong_type/dictionaries/services/00-base.yml
@@ -0,0 +1,5 @@
+test.service:
+ files:
+ /etc/file:
+ mode: wrong_mode
+version: '1.0'
diff --git a/tests/dictionaries/80base_file_mode_wrong_type/yml/00-base.yml b/tests/dictionaries/80base_file_mode_wrong_type/yml/00-base.yml
deleted file mode 100644
index aac15cc66..000000000
--- a/tests/dictionaries/80base_file_mode_wrong_type/yml/00-base.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: test
- file:
- - mode: wrong_mode
- text: /etc/file
diff --git a/tests/dictionaries/80check_self/dictionaries/rougail/00-base.yml b/tests/dictionaries/80check_self/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ee26b935d
--- /dev/null
+++ b/tests/dictionaries/80check_self/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ int:
+ type: number
+ description: No change
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.int | valid_lower(mini=0, maxi=rougail.general.int)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries/80check_self/yml/00-base.yml b/tests/dictionaries/80check_self/yml/00-base.yml
deleted file mode 100644
index ff7304b6b..000000000
--- a/tests/dictionaries/80check_self/yml/00-base.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: b
- - name: int
- type: number
- description: No change
-constraints:
-- check:
- - name: valid_lower
- param:
- - name: mini
- type: number
- text: 0
- - name: maxi
- type: variable
- text: int
- target:
- - text: int
diff --git a/tests/dictionaries/80check_unknown/dictionaries/rougail/00-base.yml b/tests/dictionaries/80check_unknown/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f28b3173f
--- /dev/null
+++ b/tests/dictionaries/80check_unknown/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ int:
+ type: number
+ description: No change
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.int | unknown(mini="0", maxi="100") }}'
+version: '1.0'
diff --git a/tests/dictionaries/80check_unknown/yml/00-base.yml b/tests/dictionaries/80check_unknown/yml/00-base.yml
deleted file mode 100644
index 503ff201d..000000000
--- a/tests/dictionaries/80check_unknown/yml/00-base.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: b
- - name: int
- type: number
- description: No change
-constraints:
-- check:
- - name: unknown
- param:
- - name: mini
- text: 0
- - name: maxi
- text: 100
- target:
- - text: int
diff --git a/tests/dictionaries/80check_unknown_var/dictionaries/rougail/00-base.yml b/tests/dictionaries/80check_unknown_var/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..3344c8611
--- /dev/null
+++ b/tests/dictionaries/80check_unknown_var/dictionaries/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif | valid_differ(__int3) }}'
+version: '1.0'
diff --git a/tests/dictionaries/80check_unknown_var/yml/00-base.yml b/tests/dictionaries/80check_unknown_var/yml/00-base.yml
deleted file mode 100644
index 72e14ae8b..000000000
--- a/tests/dictionaries/80check_unknown_var/yml/00-base.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: b
-constraints:
-- check:
- - name: valid_differ
- param:
- - type: variable
- text: int3
- target:
- - text: mode_conteneur_actif
diff --git a/tests/dictionaries/80check_without_target/yml/00-base.yml b/tests/dictionaries/80check_without_target/yml/00-base.yml
deleted file mode 100644
index ad8375ca5..000000000
--- a/tests/dictionaries/80check_without_target/yml/00-base.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: b
- - name: int
- type: number
- description: No change
-constraints:
-- check:
- - name: valid_entier
- param:
- - name: mini
- text: 0
- - name: maxi
- text: 100
diff --git a/tests/dictionaries/80condition_itself/dictionaries/rougail/00-base.yml b/tests/dictionaries/80condition_itself/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f7a19a2ba
--- /dev/null
+++ b/tests/dictionaries/80condition_itself/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+test:
+ replicationtype:
+ description: replicationType
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.test.replicationtype == "leader-leader" %}true{% else
+ %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries/80condition_itself/yml/00-base.yml b/tests/dictionaries/80condition_itself/yml/00-base.yml
deleted file mode 100644
index e8fec5ce5..000000000
--- a/tests/dictionaries/80condition_itself/yml/00-base.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: test
- variables:
- - variable:
- - name: replicationtype
- description: replicationType
-constraints:
-- condition:
- - name: disabled_if_in
- source: replicationtype
- param:
- - text: leader-leader
- target:
- - type: variable
- text: replicationtype
diff --git a/tests/dictionaries/80condition_not_exists_error/dictionaries/rougail/00-base.yml b/tests/dictionaries/80condition_not_exists_error/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..6a3011e35
--- /dev/null
+++ b/tests/dictionaries/80condition_not_exists_error/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80condition_not_exists_error/yml/00-base.yml b/tests/dictionaries/80condition_not_exists_error/yml/00-base.yml
deleted file mode 100644
index 281b472fd..000000000
--- a/tests/dictionaries/80condition_not_exists_error/yml/00-base.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: condition
- type: string
- description: No change
- value:
- - text: non
-constraints:
-- condition:
- - name: hidden_if_in
- source: condition
- param:
- - text: oui
- target:
- - type: family
- text: notexists
diff --git a/tests/dictionaries/80condition_not_exists_error_var/dictionaries/rougail/00-base.yml b/tests/dictionaries/80condition_not_exists_error_var/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..6a3011e35
--- /dev/null
+++ b/tests/dictionaries/80condition_not_exists_error_var/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80condition_not_exists_error_var/yml/00-base.yml b/tests/dictionaries/80condition_not_exists_error_var/yml/00-base.yml
deleted file mode 100644
index 841edd924..000000000
--- a/tests/dictionaries/80condition_not_exists_error_var/yml/00-base.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: condition
- type: string
- description: No change
- value:
- - text: non
-constraints:
-- condition:
- - name: hidden_if_in
- source: condition
- param:
- - text: oui
- target:
- - text: notexists
diff --git a/tests/dictionaries/80condition_without_target/yml/00-base.yml b/tests/dictionaries/80condition_without_target/yml/00-base.yml
deleted file mode 100644
index a86195061..000000000
--- a/tests/dictionaries/80condition_without_target/yml/00-base.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: condition
- type: string
- description: No change
- value:
- - text: non
- - name: mode_conteneur_actif1
- type: string
- description: No change
- value:
- - text: non
- - name: mode_conteneur_actif2
- type: string
- description: No change
- value:
- - text: non
-constraints:
-- condition:
- - optional: true
- name: disabled_if_in
- source: condition
- param:
- - text: oui
diff --git a/tests/dictionaries/80container_files_symlink_without_source/dictionaries/rougail/00-base.yml b/tests/dictionaries/80container_files_symlink_without_source/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..16cafc592
--- /dev/null
+++ b/tests/dictionaries/80container_files_symlink_without_source/dictionaries/rougail/00-base.yml
@@ -0,0 +1,11 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+ file_name:
+ type: string
+ default: /etc/mailname
+version: '1.0'
diff --git a/tests/dictionaries/80container_files_symlink_without_source/dictionaries/services/00-base.yml b/tests/dictionaries/80container_files_symlink_without_source/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..3d7d61c08
--- /dev/null
+++ b/tests/dictionaries/80container_files_symlink_without_source/dictionaries/services/00-base.yml
@@ -0,0 +1,5 @@
+test.service:
+ files:
+ rougail.general.file_name:
+ type: variable
+version: '1.0'
diff --git a/tests/dictionaries/80container_files_symlink_without_source/yml/00-base.yml b/tests/dictionaries/80container_files_symlink_without_source/yml/00-base.yml
deleted file mode 100644
index 7ee6c76a4..000000000
--- a/tests/dictionaries/80container_files_symlink_without_source/yml/00-base.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: test
- file:
- - file_type: variable
- text: file_name
-variables:
-- family:
- - name: general
- description: "g\xE9n\xE9ral"
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: oui
- - name: file_name
- type: string
- value:
- - text: /etc/mailname
diff --git a/tests/dictionaries/80container_filesredefine_error/dictionaries/rougail/00-base.yml b/tests/dictionaries/80container_filesredefine_error/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries/80container_filesredefine_error/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries/80container_filesredefine_error/dictionaries/services/00-base.yml b/tests/dictionaries/80container_filesredefine_error/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..e25233253
--- /dev/null
+++ b/tests/dictionaries/80container_filesredefine_error/dictionaries/services/00-base.yml
@@ -0,0 +1,4 @@
+test.service:
+ files:
+ /etc/mailname: {}
+version: '1.0'
diff --git a/tests/dictionaries/80container_filesredefine_error/dictionaries/services/01-base.yml b/tests/dictionaries/80container_filesredefine_error/dictionaries/services/01-base.yml
new file mode 100644
index 000000000..138b4172c
--- /dev/null
+++ b/tests/dictionaries/80container_filesredefine_error/dictionaries/services/01-base.yml
@@ -0,0 +1,5 @@
+test.service:
+ files:
+ /etc/mailname:
+ source: mailname.new
+version: '1.0'
diff --git a/tests/dictionaries/80container_filesredefine_error/yml/00-base.yml b/tests/dictionaries/80container_filesredefine_error/yml/00-base.yml
deleted file mode 100644
index 663493d49..000000000
--- a/tests/dictionaries/80container_filesredefine_error/yml/00-base.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: test
- file:
- - text: /etc/mailname
-variables:
-- family:
- - name: general
- description: "g\xE9n\xE9ral"
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: oui
diff --git a/tests/dictionaries/80container_filesredefine_error/yml/01-base.yml b/tests/dictionaries/80container_filesredefine_error/yml/01-base.yml
deleted file mode 100644
index 5b113db68..000000000
--- a/tests/dictionaries/80container_filesredefine_error/yml/01-base.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: test
- file:
- - source: mailname.new
- text: /etc/mailname
diff --git a/tests/dictionaries/80empty_param_number/yml/00_base.yml b/tests/dictionaries/80empty_param_number/yml/00_base.yml
deleted file mode 100644
index 53d117e21..000000000
--- a/tests/dictionaries/80empty_param_number/yml/00_base.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: toto1
- type: port
- description: "Port d'\xE9coute du proxy"
- mode: expert
- - name: toto2
- type: port
- description: "Port d'\xE9coute du proxy NTLM"
- mode: expert
- value:
- - text: 3127
-constraints:
-- fill:
- - name: calc_multi_condition
- param:
- - name: value
- type: number
- target:
- - text: toto1
diff --git a/tests/dictionaries/80empty_typeeole_eole/yml/00_base.yml b/tests/dictionaries/80empty_typeeole_eole/yml/00_base.yml
deleted file mode 100644
index 1d17cf329..000000000
--- a/tests/dictionaries/80empty_typeeole_eole/yml/00_base.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: toto1
- type: port
- description: "Port d'\xE9coute du proxy"
- mode: expert
- - name: toto2
- type: port
- description: "Port d'\xE9coute du proxy NTLM"
- mode: expert
- value:
- - text: 3127
-constraints:
-- fill:
- - name: calc_multi_condition
- param:
- - text: non
- - type: variable
- name: condition_1
- propertyerror: true
- - name: match
- text: 3128
- - name: mismatch
- type: variable
- propertyerror: true
- text: toto2
- target:
- - text: toto1
diff --git a/tests/dictionaries/80empty_typeeole_number/yml/00_base.yml b/tests/dictionaries/80empty_typeeole_number/yml/00_base.yml
deleted file mode 100644
index 4473ddcd5..000000000
--- a/tests/dictionaries/80empty_typeeole_number/yml/00_base.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: toto1
- type: port
- description: "Port d'\xE9coute du proxy"
- mode: expert
- - name: toto2
- type: port
- description: "Port d'\xE9coute du proxy NTLM"
- mode: expert
- value:
- - text: 3127
-constraints:
-- fill:
- - name: calc_multi_condition
- param:
- - text: non
- - type: number
- name: condition_2
- propertyerror: true
- - name: match
- text: 3128
- - name: mismatch
- type: variable
- propertyerror: true
- text: toto2
- target:
- - text: toto1
diff --git a/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra/00-base.yml b/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..47d02767d
--- /dev/null
+++ b/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra/00-base.yml
@@ -0,0 +1,21 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default: none
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra1/00-base.yml b/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra1/00-base.yml
new file mode 100644
index 000000000..0765adcd8
--- /dev/null
+++ b/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra1/00-base.yml
@@ -0,0 +1,8 @@
+external:
+ description:
+ type: string
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__extra.ejabberd.day, match="none",
+ mismatch="daily") }}'
+version: '1.0'
diff --git a/tests/dictionaries/80extra_externalspaceauto/dictionaries/rougail/00-base.yml b/tests/dictionaries/80extra_externalspaceauto/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..957459af9
--- /dev/null
+++ b/tests/dictionaries/80extra_externalspaceauto/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80extra_externalspaceauto/yml/00-base.yml b/tests/dictionaries/80extra_externalspaceauto/yml/00-base.yml
deleted file mode 100644
index 083ecd813..000000000
--- a/tests/dictionaries/80extra_externalspaceauto/yml/00-base.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- description: "g\xE9n\xE9ral"
- variables:
- - variable:
- - name: activer_ejabberd
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80extra_externalspaceauto/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries/80extra_externalspaceauto/yml/extra_dirs/extra/00-base.yml
deleted file mode 100644
index 6722541d2..000000000
--- a/tests/dictionaries/80extra_externalspaceauto/yml/extra_dirs/extra/00-base.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: ejabberd
- variables:
- - variable:
- - name: description
- type: string
- value:
- - text: Exportation de la base de ejabberd
- - name: day
- type: choice
- mandatory: true
- choice:
- - text: none
- - text: daily
- - text: weekly
- - text: monthly
- value:
- - text: none
- - name: mode
- type: choice
- mandatory: true
- value:
- - text: pre
- choice:
- - text: pre
- - text: post
diff --git a/tests/dictionaries/80extra_externalspaceauto/yml/extra_dirs/extra1/00-base.yml b/tests/dictionaries/80extra_externalspaceauto/yml/extra_dirs/extra1/00-base.yml
deleted file mode 100644
index 63eb518cb..000000000
--- a/tests/dictionaries/80extra_externalspaceauto/yml/extra_dirs/extra1/00-base.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: external
- variables:
- - variable:
- - name: description
- type: string
- value:
- - text: test
-constraints:
-- fill:
- - name: calc_multi_condition
- param:
- - text: non
- - type: variable
- name: condition_1
- text: extra.ejabberd.day
- - name: match
- text: none
- - name: mismatch
- text: daily
- target:
- - text: extra1.external.description
diff --git a/tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra/00-base.yml b/tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..47d02767d
--- /dev/null
+++ b/tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra/00-base.yml
@@ -0,0 +1,21 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default: none
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra1/00-base.yml b/tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra1/00-base.yml
new file mode 100644
index 000000000..aedf01921
--- /dev/null
+++ b/tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra1/00-base.yml
@@ -0,0 +1,5 @@
+external:
+ description:
+ type: string
+ default: test
+version: '1.0'
diff --git a/tests/dictionaries/80extra_externalspacecondition2/dictionaries/rougail/00-base.yml b/tests/dictionaries/80extra_externalspacecondition2/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..957459af9
--- /dev/null
+++ b/tests/dictionaries/80extra_externalspacecondition2/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80extra_externalspacecondition2/yml/00-base.yml b/tests/dictionaries/80extra_externalspacecondition2/yml/00-base.yml
deleted file mode 100644
index 083ecd813..000000000
--- a/tests/dictionaries/80extra_externalspacecondition2/yml/00-base.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- description: "g\xE9n\xE9ral"
- variables:
- - variable:
- - name: activer_ejabberd
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80extra_externalspacecondition2/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries/80extra_externalspacecondition2/yml/extra_dirs/extra/00-base.yml
deleted file mode 100644
index 6722541d2..000000000
--- a/tests/dictionaries/80extra_externalspacecondition2/yml/extra_dirs/extra/00-base.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: ejabberd
- variables:
- - variable:
- - name: description
- type: string
- value:
- - text: Exportation de la base de ejabberd
- - name: day
- type: choice
- mandatory: true
- choice:
- - text: none
- - text: daily
- - text: weekly
- - text: monthly
- value:
- - text: none
- - name: mode
- type: choice
- mandatory: true
- value:
- - text: pre
- choice:
- - text: pre
- - text: post
diff --git a/tests/dictionaries/80extra_externalspacecondition2/yml/extra_dirs/extra1/00-base.yml b/tests/dictionaries/80extra_externalspacecondition2/yml/extra_dirs/extra1/00-base.yml
deleted file mode 100644
index 5eb135976..000000000
--- a/tests/dictionaries/80extra_externalspacecondition2/yml/extra_dirs/extra1/00-base.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: external
- variables:
- - variable:
- - name: description
- type: string
- value:
- - text: test
-constraints:
-- condition:
- - name: disabled_if_in
- source: extra1.external.description
- param:
- - text: non
- target:
- - type: family
- text: extra.ejabberd
diff --git a/tests/dictionaries/80extra_externalspacecondition3/dictionaries/extra/00-base.yml b/tests/dictionaries/80extra_externalspacecondition3/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..aedf01921
--- /dev/null
+++ b/tests/dictionaries/80extra_externalspacecondition3/dictionaries/extra/00-base.yml
@@ -0,0 +1,5 @@
+external:
+ description:
+ type: string
+ default: test
+version: '1.0'
diff --git a/tests/dictionaries/80extra_externalspacecondition3/dictionaries/rougail/00-base.yml b/tests/dictionaries/80extra_externalspacecondition3/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..957459af9
--- /dev/null
+++ b/tests/dictionaries/80extra_externalspacecondition3/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80extra_externalspacecondition3/yml/00-base.yml b/tests/dictionaries/80extra_externalspacecondition3/yml/00-base.yml
deleted file mode 100644
index 083ecd813..000000000
--- a/tests/dictionaries/80extra_externalspacecondition3/yml/00-base.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- description: "g\xE9n\xE9ral"
- variables:
- - variable:
- - name: activer_ejabberd
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80extra_externalspacecondition3/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries/80extra_externalspacecondition3/yml/extra_dirs/extra/00-base.yml
deleted file mode 100644
index 2619ec3f2..000000000
--- a/tests/dictionaries/80extra_externalspacecondition3/yml/extra_dirs/extra/00-base.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: external
- variables:
- - variable:
- - name: description
- type: string
- value:
- - text: test
-constraints:
-- condition:
- - name: disabled_if_in
- source: extra1.external.description
- param:
- - text: non
- target:
- - type: family
- text: general
diff --git a/tests/dictionaries/80extra_rougail/dictionaries/rougail/00-base.yml b/tests/dictionaries/80extra_rougail/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c1f5b2a24
--- /dev/null
+++ b/tests/dictionaries/80extra_rougail/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80extra_rougail/yml/00-base.yml b/tests/dictionaries/80extra_rougail/yml/00-base.yml
deleted file mode 100644
index 6311bc886..000000000
--- a/tests/dictionaries/80extra_rougail/yml/00-base.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: non
- - name: activer_ejabberd
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80extra_rougail/yml/extra_dirs/rougail/00-base.yml b/tests/dictionaries/80extra_rougail/yml/extra_dirs/rougail/00-base.yml
deleted file mode 100644
index 1f90298c5..000000000
--- a/tests/dictionaries/80extra_rougail/yml/extra_dirs/rougail/00-base.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: ejabberd
- variables:
- - variable:
- - name: description
- type: string
- value:
- - text: Exportation de la base de ejabberd
- - name: day
- type: choice
- mandatory: true
- choice:
- - text: none
- - text: daily
- - text: weekly
- - text: monthly
- value:
- - text: none
- - name: mode
- type: choice
- mandatory: true
- value:
- - text: pre
- choice:
- - text: pre
- - text: post
-constraints:
-- fill:
- - name: calc_multi_condition
- param:
- - text: non
- - type: variable
- name: condition_1
- propertyerror: true
- text: activer_ejabberd
- - name: match
- text: none
- - name: mismatch
- text: daily
- target:
- - text: extra.ejabberd.day
diff --git a/tests/dictionaries/80extra_services/dictionaries/rougail/00-base.yml b/tests/dictionaries/80extra_services/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c1f5b2a24
--- /dev/null
+++ b/tests/dictionaries/80extra_services/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80extra_services/dictionaries/services/00-base.yml b/tests/dictionaries/80extra_services/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..47d02767d
--- /dev/null
+++ b/tests/dictionaries/80extra_services/dictionaries/services/00-base.yml
@@ -0,0 +1,21 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default: none
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries/80extra_services/yml/00-base.yml b/tests/dictionaries/80extra_services/yml/00-base.yml
deleted file mode 100644
index 6311bc886..000000000
--- a/tests/dictionaries/80extra_services/yml/00-base.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: non
- - name: activer_ejabberd
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80extra_services/yml/extra_dirs/services/00-base.yml b/tests/dictionaries/80extra_services/yml/extra_dirs/services/00-base.yml
deleted file mode 100644
index 2a9471564..000000000
--- a/tests/dictionaries/80extra_services/yml/extra_dirs/services/00-base.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: ejabberd
- variables:
- - variable:
- - name: description
- type: string
- value:
- - text: Exportation de la base de ejabberd
- - name: day
- type: choice
- mandatory: true
- choice:
- - text: none
- - text: daily
- - text: weekly
- - text: monthly
- value:
- - text: none
- - name: mode
- type: choice
- mandatory: true
- value:
- - text: pre
- choice:
- - text: pre
- - text: post
-constraints:
-- fill:
- - name: calc_multi_condition
- param:
- - text: non
- - type: variable
- name: condition_1
- propertyerror: false
- text: activer_ejabberd
- - name: match
- text: none
- - name: mismatch
- text: daily
- target:
- - text: extra.ejabberd.day
diff --git a/tests/dictionaries/80family_appendaccent/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_appendaccent/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..009515298
--- /dev/null
+++ b/tests/dictionaries/80family_appendaccent/dictionaries/rougail/00-base.yml
@@ -0,0 +1,16 @@
+Général:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.Other.mode_conteneur_actif3 == "non" %}true{% else %}false{%
+ endif %}'
+Other:
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80family_appendaccent/dictionaries/rougail/01-base.yml b/tests/dictionaries/80family_appendaccent/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..d50b486ea
--- /dev/null
+++ b/tests/dictionaries/80family_appendaccent/dictionaries/rougail/01-base.yml
@@ -0,0 +1,7 @@
+Général:
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80family_appendaccent/dictionaries/rougail/02-base.yml b/tests/dictionaries/80family_appendaccent/dictionaries/rougail/02-base.yml
new file mode 100644
index 000000000..bce32b41b
--- /dev/null
+++ b/tests/dictionaries/80family_appendaccent/dictionaries/rougail/02-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80family_appendaccent/yml/00-base.yml b/tests/dictionaries/80family_appendaccent/yml/00-base.yml
deleted file mode 100644
index fcebd6b2d..000000000
--- a/tests/dictionaries/80family_appendaccent/yml/00-base.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: "G\xE9n\xE9ral"
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: Other
- variables:
- - variable:
- - name: mode_conteneur_actif3
- type: string
- description: No change
- hidden: true
- value:
- - text: non
-constraints:
-- condition:
- - name: disabled_if_in
- source: mode_conteneur_actif3
- param:
- - text: non
- target:
- - type: variable
- text: mode_conteneur_actif
diff --git a/tests/dictionaries/80family_appendaccent/yml/01-base.yml b/tests/dictionaries/80family_appendaccent/yml/01-base.yml
deleted file mode 100644
index 5a571d63e..000000000
--- a/tests/dictionaries/80family_appendaccent/yml/01-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: "G\xE9n\xE9ral"
- variables:
- - variable:
- - name: mode_conteneur_actif1
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80family_appendaccent/yml/02-base.yml b/tests/dictionaries/80family_appendaccent/yml/02-base.yml
deleted file mode 100644
index 2841f2739..000000000
--- a/tests/dictionaries/80family_appendaccent/yml/02-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif2
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80family_change/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_change/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..bbe3024d2
--- /dev/null
+++ b/tests/dictionaries/80family_change/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80family_change/dictionaries/rougail/01-base.yml b/tests/dictionaries/80family_change/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..2cbc7c499
--- /dev/null
+++ b/tests/dictionaries/80family_change/dictionaries/rougail/01-base.yml
@@ -0,0 +1,5 @@
+other:
+ mode_conteneur_actif1:
+ redefine: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80family_change/yml/00-base.yml b/tests/dictionaries/80family_change/yml/00-base.yml
deleted file mode 100644
index eabf5c947..000000000
--- a/tests/dictionaries/80family_change/yml/00-base.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: non
- - name: mode_conteneur_actif1
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80family_change/yml/01-base.yml b/tests/dictionaries/80family_change/yml/01-base.yml
deleted file mode 100644
index 0acfbb1b0..000000000
--- a/tests/dictionaries/80family_change/yml/01-base.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: other
- variables:
- - variable:
- - name: mode_conteneur_actif1
- redefine: true
- value:
- - text: non
diff --git a/tests/dictionaries/80family_dynamic_calc_invalid_suffix/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_dynamic_calc_invalid_suffix/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..756059a70
--- /dev/null
+++ b/tests/dictionaries/80family_dynamic_calc_invalid_suffix/dictionaries/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __suffix | calc_val }}'
+ params:
+ __suffix:
+ type: suffix
+ text: unknown
+new:
+ newvar:
+ type: string
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries/80family_dynamic_calc_invalid_suffix/yml/00-base.yml b/tests/dictionaries/80family_dynamic_calc_invalid_suffix/yml/00-base.yml
deleted file mode 100644
index 3beffce93..000000000
--- a/tests/dictionaries/80family_dynamic_calc_invalid_suffix/yml/00-base.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: varname
- type: string
- description: No change
- multi: true
- value:
- - text: val1
- - text: val2
- - name: dyn
- dynamic: varname
- variables:
- - variable:
- - name: vardyn
- type: string
- description: No change
- value:
- - text: val
- - name: new
- variables:
- - variable:
- - name: newvar
- type: string
- description: No change
-constraints:
-- fill:
- - name: calc_val
- param:
- - type: suffix
- text: unknown
- target:
- - text: vardyn
diff --git a/tests/dictionaries/80family_dynamic_check/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_dynamic_check/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4f8cf4b0d
--- /dev/null
+++ b/tests/dictionaries/80family_dynamic_check/dictionaries/rougail/00-base.yml
@@ -0,0 +1,15 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: number
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries/80family_dynamic_check/yml/00-base.yml b/tests/dictionaries/80family_dynamic_check/yml/00-base.yml
deleted file mode 100644
index deb8769ce..000000000
--- a/tests/dictionaries/80family_dynamic_check/yml/00-base.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: varname
- type: string
- description: No change
- multi: true
- value:
- - text: val1
- - text: val2
- - name: dyn
- dynamic: varname
- variables:
- - variable:
- - name: vardyn
- type: number
- description: No change
-constraints:
-- check:
- - name: valid_entier
- param:
- - name: mini
- type: number
- text: 0
- - name: maxi
- type: number
- text: 100
- target:
- - text: vardynval1
diff --git a/tests/dictionaries/80family_dynamic_not_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_dynamic_not_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0ec58f9e7
--- /dev/null
+++ b/tests/dictionaries/80family_dynamic_not_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ varname:
+ type: string
+ description: No change
+ default: val1
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries/80family_dynamic_not_multi/yml/00-base.yml b/tests/dictionaries/80family_dynamic_not_multi/yml/00-base.yml
deleted file mode 100644
index 81f4bab6a..000000000
--- a/tests/dictionaries/80family_dynamic_not_multi/yml/00-base.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: varname
- type: string
- description: No change
- value:
- - text: val1
- - name: dyn
- dynamic: varname
- variables:
- - variable:
- - name: vardyn
- type: string
- description: No change
diff --git a/tests/dictionaries/80family_dynamic_with_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_dynamic_with_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f6b8adb70
--- /dev/null
+++ b/tests/dictionaries/80family_dynamic_with_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,17 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ my_family:
+ vardyn2: {}
+version: '1.0'
diff --git a/tests/dictionaries/80family_dynamic_with_family/yml/00-base.yml b/tests/dictionaries/80family_dynamic_with_family/yml/00-base.yml
deleted file mode 100644
index 52f0a3015..000000000
--- a/tests/dictionaries/80family_dynamic_with_family/yml/00-base.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: varname
- type: string
- description: No change
- multi: true
- value:
- - text: val1
- - text: val2
- - name: dyn
- dynamic: varname
- variables:
- - variable:
- - name: vardyn
- type: string
- description: No change
- - family:
- - name: my_family
- variables:
- - variable:
- - name: vardyn2
diff --git a/tests/dictionaries/80family_not_dynamic_calc_suffix/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_not_dynamic_calc_suffix/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..444bd5692
--- /dev/null
+++ b/tests/dictionaries/80family_not_dynamic_calc_suffix/dictionaries/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default: val
+new:
+ newvar:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __suffix | calc_val }}'
+ params:
+ __suffix:
+ type: suffix
+version: '1.0'
diff --git a/tests/dictionaries/80family_not_dynamic_calc_suffix/yml/00-base.yml b/tests/dictionaries/80family_not_dynamic_calc_suffix/yml/00-base.yml
deleted file mode 100644
index 3d906432d..000000000
--- a/tests/dictionaries/80family_not_dynamic_calc_suffix/yml/00-base.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: varname
- type: string
- description: No change
- multi: true
- value:
- - text: val1
- - text: val2
- - name: dyn
- dynamic: varname
- variables:
- - variable:
- - name: vardyn
- type: string
- description: No change
- value:
- - text: val
- - name: new
- variables:
- - variable:
- - name: newvar
- type: string
- description: No change
-constraints:
-- fill:
- - name: calc_val
- param:
- - type: suffix
- target:
- - text: newvar
diff --git a/tests/dictionaries/80family_only_on_suffix/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_only_on_suffix/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4839ed54c
--- /dev/null
+++ b/tests/dictionaries/80family_only_on_suffix/dictionaries/rougail/00-base.yml
@@ -0,0 +1,15 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries/80family_only_on_suffix/yml/00-base.yml b/tests/dictionaries/80family_only_on_suffix/yml/00-base.yml
deleted file mode 100644
index 3f574b9af..000000000
--- a/tests/dictionaries/80family_only_on_suffix/yml/00-base.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: varname
- type: string
- description: No change
- multi: true
- value:
- - text: val1
- - text: val2
- - name: dyn
- dynamic: varname
- variables:
- - variable:
- - name: vardyn
- type: string
- description: No change
-constraints:
-- fill:
- - name: calc_val
- param:
- - text: value
- target:
- - text: vardynval1
diff --git a/tests/dictionaries/80family_several/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_several/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..eec4e3781
--- /dev/null
+++ b/tests/dictionaries/80family_several/dictionaries/rougail/00-base.yml
@@ -0,0 +1,23 @@
+general:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ multi: true
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ multi: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/80family_several/yml/00-base.yml b/tests/dictionaries/80family_several/yml/00-base.yml
deleted file mode 100644
index fc62069e4..000000000
--- a/tests/dictionaries/80family_several/yml/00-base.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: general
- variables:
- - family:
- - name: leader
- description: leader
- leadership: true
- variables:
- - variable:
- - name: leader
- type: string
- description: leader
- multi: true
- - name: follower1
- type: string
- description: follower1
- multi: true
- - name: follower2
- type: string
- description: follower2
- multi: true
-constraints:
-- fill:
- - name: calc_val
- param:
- - name: valeur
- text: valfill
- target:
- - text: follower1
- - name: calc_val
- param:
- - type: variable
- text: follower1
- target:
- - text: follower2
diff --git a/tests/dictionaries/80family_underscode/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_underscode/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..8d40d0f69
--- /dev/null
+++ b/tests/dictionaries/80family_underscode/dictionaries/rougail/00-base.yml
@@ -0,0 +1,3 @@
+---
+version: '1.0'
+_my_family:
diff --git a/tests/dictionaries/80family_unique/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_unique/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..de1df1b2e
--- /dev/null
+++ b/tests/dictionaries/80family_unique/dictionaries/rougail/00-base.yml
@@ -0,0 +1,4 @@
+general:
+ general:
+ my_variable: {}
+version: '1.0'
diff --git a/tests/dictionaries/80family_unique/yml/00-base.yml b/tests/dictionaries/80family_unique/yml/00-base.yml
deleted file mode 100644
index 67d9c9c51..000000000
--- a/tests/dictionaries/80family_unique/yml/00-base.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - family:
- - name: general
- variables:
- - variable:
- - name: my_variable
diff --git a/tests/dictionaries/80family_variable_not_same_name/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_variable_not_same_name/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1494c992a
--- /dev/null
+++ b/tests/dictionaries/80family_variable_not_same_name/dictionaries/rougail/00-base.yml
@@ -0,0 +1,2 @@
+general: {}
+version: '1.0'
diff --git a/tests/dictionaries/80familyaction_accent/dictionaries/extra/00-base.yml b/tests/dictionaries/80familyaction_accent/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..2ccc3ff50
--- /dev/null
+++ b/tests/dictionaries/80familyaction_accent/dictionaries/extra/00-base.yml
@@ -0,0 +1,6 @@
+test:
+ delay:
+ type: number
+ description: délai en minutes avant lancement
+ default: 0
+version: '1.0'
diff --git a/tests/dictionaries/80familyaction_accent/dictionaries/rougail/00-base.yml b/tests/dictionaries/80familyaction_accent/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0c0c9bc69
--- /dev/null
+++ b/tests/dictionaries/80familyaction_accent/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+général:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80familyaction_accent/yml/00-base.yml b/tests/dictionaries/80familyaction_accent/yml/00-base.yml
deleted file mode 100644
index d0acda026..000000000
--- a/tests/dictionaries/80familyaction_accent/yml/00-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: "g\xE9n\xE9ral"
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80familyaction_accent/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries/80familyaction_accent/yml/extra_dirs/extra/00-base.yml
deleted file mode 100644
index e28f2266e..000000000
--- a/tests/dictionaries/80familyaction_accent/yml/extra_dirs/extra/00-base.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: test
- variables:
- - variable:
- - name: delay
- type: number
- description: "d\xE9lai en minutes avant lancement"
- value:
- - text: 0
diff --git a/tests/dictionaries/80file_group_wrong_type/dictionaries/rougail/00-base.yml b/tests/dictionaries/80file_group_wrong_type/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..2f570f39e
--- /dev/null
+++ b/tests/dictionaries/80file_group_wrong_type/dictionaries/rougail/00-base.yml
@@ -0,0 +1,4 @@
+group:
+ type: string
+ default: nobody
+version: '1.0'
diff --git a/tests/dictionaries/80file_group_wrong_type/dictionaries/services/00-base.yml b/tests/dictionaries/80file_group_wrong_type/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..9c28101bc
--- /dev/null
+++ b/tests/dictionaries/80file_group_wrong_type/dictionaries/services/00-base.yml
@@ -0,0 +1,7 @@
+test.service:
+ files:
+ /etc/file:
+ group:
+ name: rougail.group
+ type: variable
+version: '1.0'
diff --git a/tests/dictionaries/80file_group_wrong_type/yml/00-base.yml b/tests/dictionaries/80file_group_wrong_type/yml/00-base.yml
deleted file mode 100644
index f0a5162b0..000000000
--- a/tests/dictionaries/80file_group_wrong_type/yml/00-base.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: test
- file:
- - group_type: variable
- group: group
- text: /etc/file
-variables:
-- variable:
- - name: group
- type: string
- value:
- - text: nobody
diff --git a/tests/dictionaries/80file_owner_wrong_type/dictionaries/rougail/00-base.yml b/tests/dictionaries/80file_owner_wrong_type/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0088a6c8a
--- /dev/null
+++ b/tests/dictionaries/80file_owner_wrong_type/dictionaries/rougail/00-base.yml
@@ -0,0 +1,5 @@
+general:
+ owner:
+ type: string
+ default: nobody
+version: '1.0'
diff --git a/tests/dictionaries/80file_owner_wrong_type/dictionaries/services/00-base.yml b/tests/dictionaries/80file_owner_wrong_type/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..584dbb3b2
--- /dev/null
+++ b/tests/dictionaries/80file_owner_wrong_type/dictionaries/services/00-base.yml
@@ -0,0 +1,7 @@
+test.service:
+ files:
+ /etc/file:
+ owner:
+ name: rougail.general.owner
+ type: variable
+version: '1.0'
diff --git a/tests/dictionaries/80file_owner_wrong_type/yml/00-base.yml b/tests/dictionaries/80file_owner_wrong_type/yml/00-base.yml
deleted file mode 100644
index 2b0a52d53..000000000
--- a/tests/dictionaries/80file_owner_wrong_type/yml/00-base.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: test
- file:
- - owner_type: variable
- owner: owner
- text: /etc/file
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: owner
- type: string
- value:
- - text: nobody
diff --git a/tests/dictionaries/80file_wrong_type/dictionaries/rougail/00-base.yml b/tests/dictionaries/80file_wrong_type/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f417d36e2
--- /dev/null
+++ b/tests/dictionaries/80file_wrong_type/dictionaries/rougail/00-base.yml
@@ -0,0 +1,4 @@
+file_name:
+ type: string
+ default: /etc/mailname
+version: '1.0'
diff --git a/tests/dictionaries/80file_wrong_type/dictionaries/services/00-base.yml b/tests/dictionaries/80file_wrong_type/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..efe680d12
--- /dev/null
+++ b/tests/dictionaries/80file_wrong_type/dictionaries/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ rougail.file_name:
+ source: mailname
+ type: variable
+version: '1.0'
diff --git a/tests/dictionaries/80file_wrong_type/yml/00-base.yml b/tests/dictionaries/80file_wrong_type/yml/00-base.yml
deleted file mode 100644
index 18a485d0b..000000000
--- a/tests/dictionaries/80file_wrong_type/yml/00-base.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: test
- file:
- - file_type: variable
- source: mailname
- text: file_name
-variables:
-- variable:
- - name: file_name
- type: string
- value:
- - text: /etc/mailname
diff --git a/tests/dictionaries/80fill_baseaccent/dictionaries/rougail/00-base.yml b/tests/dictionaries/80fill_baseaccent/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..11221492c
--- /dev/null
+++ b/tests/dictionaries/80fill_baseaccent/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+Général:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.Général.mode_conteneur_actif1 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80fill_baseaccent/yml/00-base.yml b/tests/dictionaries/80fill_baseaccent/yml/00-base.yml
deleted file mode 100644
index bd68bf785..000000000
--- a/tests/dictionaries/80fill_baseaccent/yml/00-base.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: "G\xE9n\xE9ral"
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: non
- - name: mode_conteneur_actif1
- type: string
- description: No change
- value:
- - text: non
-constraints:
-- fill:
- - name: calc_val
- param:
- - type: variable
- text: mode_conteneur_actif1
- target:
- - text: mode_conteneur_actif
diff --git a/tests/dictionaries/80fill_error/dictionaries/rougail/00-base.yml b/tests/dictionaries/80fill_error/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..abcb1c8ae
--- /dev/null
+++ b/tests/dictionaries/80fill_error/dictionaries/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "valeur2" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/80fill_error/yml/00-base.yml b/tests/dictionaries/80fill_error/yml/00-base.yml
deleted file mode 100644
index f2de42fe9..000000000
--- a/tests/dictionaries/80fill_error/yml/00-base.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: non
-constraints:
-- fill:
- - name: calc_val
- param:
- - name: valeur
- text: valeur
- target:
- - text: mode_conteneur_actif
- - name: calc_val
- param:
- - name: valeur
- text: valeur2
- target:
- - text: mode_conteneur_actif
diff --git a/tests/dictionaries/80fill_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/80fill_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..923ad537e
--- /dev/null
+++ b/tests/dictionaries/80fill_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "mode_conteneur_actif1" | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80fill_multi/yml/00-base.yml b/tests/dictionaries/80fill_multi/yml/00-base.yml
deleted file mode 100644
index 3ce0941c5..000000000
--- a/tests/dictionaries/80fill_multi/yml/00-base.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: non
- - name: mode_conteneur_actif1
- type: string
- description: No change
- value:
- - text: non
-constraints:
-- fill:
- - name: calc_val
- param:
- - text: value
- target:
- - text: mode_conteneur_actif
- - name: calc_val
- param:
- - name: variable
- text: mode_conteneur_actif1
- target:
- - text: mode_conteneur_actif
diff --git a/tests/dictionaries/80fill_not_exists/dictionaries/rougail/00-base.yml b/tests/dictionaries/80fill_not_exists/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..eae9f060f
--- /dev/null
+++ b/tests/dictionaries/80fill_not_exists/dictionaries/rougail/00-base.yml
@@ -0,0 +1,14 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ __mode_conteneur_actif4 | calc_val(rougail.general.mode_conteneur_actif1,
+ __mode_conteneur_actif3) }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80fill_not_exists/yml/00-base.yml b/tests/dictionaries/80fill_not_exists/yml/00-base.yml
deleted file mode 100644
index 6a8793edd..000000000
--- a/tests/dictionaries/80fill_not_exists/yml/00-base.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: non
- - name: mode_conteneur_actif1
- type: string
- description: No change
- value:
- - text: non
-constraints:
-- fill:
- - name: calc_val
- param:
- - type: variable
- text: mode_conteneur_actif4
- - type: variable
- text: mode_conteneur_actif1
- - type: variable
- optional: true
- text: mode_conteneur_actif3
- target:
- - text: mode_conteneur_actif
diff --git a/tests/dictionaries/80fill_option/dictionaries/rougail/00-base.yml b/tests/dictionaries/80fill_option/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ab500946e
--- /dev/null
+++ b/tests/dictionaries/80fill_option/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80fill_option/yml/00-base.yml b/tests/dictionaries/80fill_option/yml/00-base.yml
deleted file mode 100644
index 5b0453fe8..000000000
--- a/tests/dictionaries/80fill_option/yml/00-base.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- - name: mode_conteneur_actif1
- type: string
- description: No change
- value:
- - text: non
-constraints:
-- fill:
- - name: calc_val
- param:
- - type: variable
- variable: mode_conteneur_actif1
- text: mode_conteneur_actif1
- target:
- - text: mode_conteneur_actif
diff --git a/tests/dictionaries/80fill_unknown_function/dictionaries/rougail/00-base.yml b/tests/dictionaries/80fill_unknown_function/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..a925aa74f
--- /dev/null
+++ b/tests/dictionaries/80fill_unknown_function/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 | unknown_function }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80fill_unknown_function/yml/00-base.yml b/tests/dictionaries/80fill_unknown_function/yml/00-base.yml
deleted file mode 100644
index 789438bf0..000000000
--- a/tests/dictionaries/80fill_unknown_function/yml/00-base.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- - name: mode_conteneur_actif1
- type: string
- description: No change
- value:
- - text: non
-constraints:
-- fill:
- - name: unknown_function
- param:
- - type: variable
- text: mode_conteneur_actif1
- target:
- - text: mode_conteneur_actif
diff --git a/tests/dictionaries/80frozenifin_unknown/dictionaries/rougail/00-base.yml b/tests/dictionaries/80frozenifin_unknown/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..8e3369342
--- /dev/null
+++ b/tests/dictionaries/80frozenifin_unknown/dictionaries/rougail/00-base.yml
@@ -0,0 +1,24 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: enumvar
+ help: bla bla bla
+ default: 1
+ choices:
+ - 1
+ - 2
+ - 3
+ test_variable:
+ type: number
+ description: test variable
+ hidden:
+ type: jinja
+ jinja: '{% if __condition == "4" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries/80frozenifin_unknown/yml/00-base.yml b/tests/dictionaries/80frozenifin_unknown/yml/00-base.yml
deleted file mode 100644
index 7035d392c..000000000
--- a/tests/dictionaries/80frozenifin_unknown/yml/00-base.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- mode: expert
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: enumfam
- mode: expert
- variables:
- - variable:
- - name: enumvar
- type: choice
- description: enumvar
- help: bla bla bla
- choice:
- - type: number
- text: 1
- - type: number
- text: 2
- - type: number
- text: 3
- value:
- - type: number
- text: 1
- - name: test_variable
- type: number
- description: test variable
-constraints:
-- condition:
- - name: hidden_if_in
- source: condition
- param:
- - text: 4
- target:
- - type: variable
- text: test_variable
diff --git a/tests/dictionaries/80hidden_if_in_dynamic/dictionaries/rougail/00-base.yml b/tests/dictionaries/80hidden_if_in_dynamic/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..f521d0fbc
--- /dev/null
+++ b/tests/dictionaries/80hidden_if_in_dynamic/dictionaries/rougail/00-base.yml
@@ -0,0 +1,23 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default: val
+new:
+ newvar:
+ type: string
+ description: No change
+ hidden:
+ type: jinja
+ jinja: '{% if __vardynval1 == "non" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries/80hidden_if_in_dynamic/yml/00-base.yml b/tests/dictionaries/80hidden_if_in_dynamic/yml/00-base.yml
deleted file mode 100644
index 0e942f97b..000000000
--- a/tests/dictionaries/80hidden_if_in_dynamic/yml/00-base.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: varname
- type: string
- description: No change
- multi: true
- value:
- - text: val1
- - text: val2
- - name: dyn
- dynamic: varname
- variables:
- - variable:
- - name: vardyn
- type: string
- description: No change
- value:
- - text: val
- - name: new
- variables:
- - variable:
- - name: newvar
- type: string
- description: No change
-constraints:
-- condition:
- - name: hidden_if_in
- source: vardynval1
- param:
- - text: non
- target:
- - type: family
- text: new
diff --git a/tests/dictionaries/80hidden_if_in_filelist/dictionaries/rougail/00-base.yml b/tests/dictionaries/80hidden_if_in_filelist/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..b7524fed1
--- /dev/null
+++ b/tests/dictionaries/80hidden_if_in_filelist/dictionaries/rougail/00-base.yml
@@ -0,0 +1,11 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ condition:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80hidden_if_in_filelist/dictionaries/services/00-base.yml b/tests/dictionaries/80hidden_if_in_filelist/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..f17b0d641
--- /dev/null
+++ b/tests/dictionaries/80hidden_if_in_filelist/dictionaries/services/00-base.yml
@@ -0,0 +1,7 @@
+test.service:
+ files:
+ /tmp/file1:
+ hidden:
+ type: jinja
+ jinja: '{% if __activer_clam == "non" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries/80hidden_if_in_filelist/yml/00-base.yml b/tests/dictionaries/80hidden_if_in_filelist/yml/00-base.yml
deleted file mode 100644
index d0c921063..000000000
--- a/tests/dictionaries/80hidden_if_in_filelist/yml/00-base.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: test
- file:
- - filelist: afilllist
- text: /tmp/file1
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: non
- - name: condition
- type: string
- description: No change
- value:
- - text: non
-constraints:
-- condition:
- - name: hidden_if_in
- source: activer_clam
- optional: true
- param:
- - text: non
- target:
- - type: filelist
- text: afilllist
diff --git a/tests/dictionaries/80invalid_bool/yml/00-base.yml b/tests/dictionaries/80invalid_bool/yml/00-base.yml
deleted file mode 100644
index 422864221..000000000
--- a/tests/dictionaries/80invalid_bool/yml/00-base.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: server_deployed
- type: boolean
- value:
- - text: 'no'
diff --git a/tests/dictionaries/80leadership_accent/dictionaries/rougail/00-base.yml b/tests/dictionaries/80leadership_accent/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..dcbccaaa9
--- /dev/null
+++ b/tests/dictionaries/80leadership_accent/dictionaries/rougail/00-base.yml
@@ -0,0 +1,17 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ multi: true
+ Followér1:
+ type: string
+ Followér2:
+ type: string
+version: '1.0'
diff --git a/tests/dictionaries/80leadership_accent/yml/00-base.yml b/tests/dictionaries/80leadership_accent/yml/00-base.yml
deleted file mode 100644
index a89f11c08..000000000
--- a/tests/dictionaries/80leadership_accent/yml/00-base.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: general1
- variables:
- - family:
- - name: leader
- description: leader
- leadership: true
- variables:
- - variable:
- - name: leader
- type: string
- multi: true
- - name: "Follow\xE9r1"
- type: string
- - name: "Follow\xE9r2"
- type: string
-constraints:
-- fill:
- - name: calc_val
- param:
- - name: valeur
- text: valfill
- target:
- - text: follower1
- - name: calc_val
- param:
- - type: variable
- text: "Follow\xE9r1"
- target:
- - text: follower2
diff --git a/tests/dictionaries/80leadership_accent_leader/dictionaries/rougail/00-base.yml b/tests/dictionaries/80leadership_accent_leader/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..402446108
--- /dev/null
+++ b/tests/dictionaries/80leadership_accent_leader/dictionaries/rougail/00-base.yml
@@ -0,0 +1,23 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ Léader:
+ description: Léader
+ type: leadership
+ Léader:
+ type: string
+ multi: true
+ follower1:
+ type: string
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.Léader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/80leadership_accent_leader/yml/00-base.yml b/tests/dictionaries/80leadership_accent_leader/yml/00-base.yml
deleted file mode 100644
index fd2cbf726..000000000
--- a/tests/dictionaries/80leadership_accent_leader/yml/00-base.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: general1
- variables:
- - family:
- - name: "L\xE9ader"
- description: "L\xE9ader"
- leadership: true
- variables:
- - variable:
- - name: "L\xE9ader"
- type: string
- multi: true
- - name: follower1
- type: string
- - name: follower2
- type: string
-constraints:
-- fill:
- - name: calc_val
- param:
- - name: valeur
- text: valfill
- target:
- - text: follower1
- - name: calc_val
- param:
- - type: variable
- text: follower1
- target:
- - text: follower2
diff --git a/tests/dictionaries/80leadership_auto_save/dictionaries/rougail/00-base.yml b/tests/dictionaries/80leadership_auto_save/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..6ccabd449
--- /dev/null
+++ b/tests/dictionaries/80leadership_auto_save/dictionaries/rougail/00-base.yml
@@ -0,0 +1,28 @@
+server_deployed:
+ type: boolean
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ auto_save: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/80leadership_auto_save/yml/00-base.yml b/tests/dictionaries/80leadership_auto_save/yml/00-base.yml
deleted file mode 100644
index a5533aa02..000000000
--- a/tests/dictionaries/80leadership_auto_save/yml/00-base.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: server_deployed
- type: boolean
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - family:
- - name: leader
- description: leader
- leadership: true
- variables:
- - variable:
- - name: leader
- type: string
- description: leader
- multi: true
- - name: follower1
- type: string
- description: follower1
- - name: follower2
- type: string
- description: follower2
- auto_save: true
-constraints:
-- fill:
- - name: calc_val
- param:
- - name: valeur
- text: valfill
- target:
- - text: follower1
- - name: calc_val
- param:
- - type: variable
- text: follower1
- target:
- - text: follower2
diff --git a/tests/dictionaries/80leadership_autofreeze/__init__.py b/tests/dictionaries/80leadership_autofreeze/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/80leadership_autofreeze/errno_30 b/tests/dictionaries/80leadership_autofreeze/errno_30
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/80leadership_autofreeze/xml/00-base.xml b/tests/dictionaries/80leadership_autofreeze/xml/00-base.xml
deleted file mode 100644
index f3f2e5f91..000000000
--- a/tests/dictionaries/80leadership_autofreeze/xml/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries/80leadership_autofreeze/yml/00-base.yml b/tests/dictionaries/80leadership_autofreeze/yml/00-base.yml
deleted file mode 100644
index 39869b343..000000000
--- a/tests/dictionaries/80leadership_autofreeze/yml/00-base.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: server_deployed
- type: boolean
- - family:
- - name: leader
- description: leader
- leadership: true
- variables:
- - variable:
- - name: leader
- description: leader
- auto_freeze: true
- multi: true
- - name: follower1
- multi: true
- - name: follower2
- multi: true
-constraints:
-- fill:
- - name: calc_val
- param:
- - name: valeur
- text: valfill
- target:
- - text: follower1
- - name: calc_val
- param:
- - type: variable
- text: follower1
- target:
- - text: follower2
diff --git a/tests/dictionaries/80leadership_familyaccent/dictionaries/rougail/00-base.yml b/tests/dictionaries/80leadership_familyaccent/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..fa1e077c2
--- /dev/null
+++ b/tests/dictionaries/80leadership_familyaccent/dictionaries/rougail/00-base.yml
@@ -0,0 +1,25 @@
+Général:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.Général.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/80leadership_familyaccent/yml/00-base.yml b/tests/dictionaries/80leadership_familyaccent/yml/00-base.yml
deleted file mode 100644
index 90bfa50a6..000000000
--- a/tests/dictionaries/80leadership_familyaccent/yml/00-base.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: "G\xE9n\xE9ral"
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - family:
- - name: leader
- description: leader
- leadership: true
- variables:
- - variable:
- - name: leader
- type: string
- description: leader
- multi: true
- - name: follower1
- type: string
- description: follower1
- - name: follower2
- type: string
- description: follower2
-constraints:
-- fill:
- - name: calc_val
- param:
- - name: valeur
- text: valfill
- target:
- - text: follower1
- - name: calc_val
- param:
- - type: variable
- text: follower1
- target:
- - text: follower2
diff --git a/tests/dictionaries/80leadership_leader_not_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/80leadership_leader_not_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c667a2ae5
--- /dev/null
+++ b/tests/dictionaries/80leadership_leader_not_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries/80leadership_leader_not_multi/yml/00-base.yml b/tests/dictionaries/80leadership_leader_not_multi/yml/00-base.yml
deleted file mode 100644
index 5b551eec6..000000000
--- a/tests/dictionaries/80leadership_leader_not_multi/yml/00-base.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: general1
- variables:
- - family:
- - name: leader
- description: leader
- leadership: true
- variables:
- - variable:
- - name: leader
- type: string
- description: leader
- - name: follower1
- type: string
- description: follower1
- - name: follower2
- type: string
- description: follower2
diff --git a/tests/dictionaries/80leadership_mandatoryfollower_multi_value/dictionaries/rougail/00-base.yml b/tests/dictionaries/80leadership_mandatoryfollower_multi_value/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..cd9853c4e
--- /dev/null
+++ b/tests/dictionaries/80leadership_mandatoryfollower_multi_value/dictionaries/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+ nut_monitor_netmask:
+ description: Masque de l'IP du réseau de l'esclave
+ type: leadership
+ nut_monitor_netmask:
+ type: netmask
+ description: Masque de l'IP du réseau de l'esclave
+ multi: true
+ nut_monitor_host:
+ type: network
+ description: Adresse IP du réseau de l'esclave
+ mandatory: true
+ default:
+ - 192.168.0.0
+ - 192.168.1.0
+version: '1.0'
diff --git a/tests/dictionaries/80leadership_mandatoryfollower_multi_value/yml/00-base.yml b/tests/dictionaries/80leadership_mandatoryfollower_multi_value/yml/00-base.yml
deleted file mode 100644
index 6a55a2d44..000000000
--- a/tests/dictionaries/80leadership_mandatoryfollower_multi_value/yml/00-base.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- description: "g\xE9n\xE9ral"
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: oui
- - family:
- - name: nut_monitor_netmask
- description: "Masque de l'IP du r\xE9seau de l'esclave"
- leadership: true
- variables:
- - variable:
- - name: nut_monitor_netmask
- type: netmask
- description: "Masque de l'IP du r\xE9seau de l'esclave"
- multi: true
- - name: nut_monitor_host
- type: network
- description: "Adresse IP du r\xE9seau de l'esclave"
- mandatory: true
- value:
- - text: 192.168.0.0
- - text: 192.168.1.0
diff --git a/tests/dictionaries/01base_file_patch/__init__.py b/tests/dictionaries/80leadership_subfamily/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_patch/__init__.py
rename to tests/dictionaries/80leadership_subfamily/__init__.py
diff --git a/tests/dictionaries/80leadership_subfamily/dictionaries/rougail/00-base.yml b/tests/dictionaries/80leadership_subfamily/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..322ed06b7
--- /dev/null
+++ b/tests/dictionaries/80leadership_subfamily/dictionaries/rougail/00-base.yml
@@ -0,0 +1,11 @@
+version: '1.0'
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: family
diff --git a/tests/dictionaries/80leadership_subfamily/makedict/after.json b/tests/dictionaries/80leadership_subfamily/makedict/after.json
new file mode 100644
index 000000000..0b42b7958
--- /dev/null
+++ b/tests/dictionaries/80leadership_subfamily/makedict/after.json
@@ -0,0 +1,14 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general1.leader.leader": {
+ "owner": "default",
+ "value": []
+ },
+ "rougail.general1.leader1.leader1": {
+ "owner": "default",
+ "value": []
+ }
+}
diff --git a/tests/dictionaries/80leadership_subfamily/makedict/base.json b/tests/dictionaries/80leadership_subfamily/makedict/base.json
new file mode 100644
index 000000000..53442331b
--- /dev/null
+++ b/tests/dictionaries/80leadership_subfamily/makedict/base.json
@@ -0,0 +1,5 @@
+{
+ "rougail.general.mode_conteneur_actif": "non",
+ "rougail.general1.leader.leader": [],
+ "rougail.general1.leader1.leader1": []
+}
diff --git a/tests/dictionaries/80leadership_subfamily/makedict/before.json b/tests/dictionaries/80leadership_subfamily/makedict/before.json
new file mode 100644
index 000000000..0b42b7958
--- /dev/null
+++ b/tests/dictionaries/80leadership_subfamily/makedict/before.json
@@ -0,0 +1,14 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general1.leader.leader": {
+ "owner": "default",
+ "value": []
+ },
+ "rougail.general1.leader1.leader1": {
+ "owner": "default",
+ "value": []
+ }
+}
diff --git a/tests/dictionaries/80leadership_subfamily/tiramisu/base.py b/tests/dictionaries/80leadership_subfamily/tiramisu/base.py
new file mode 100644
index 000000000..91bad5e87
--- /dev/null
+++ b/tests/dictionaries/80leadership_subfamily/tiramisu/base.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+option_9 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_10 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_11 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_8 = Leadership(name="leader1", doc="leader", children=[option_9, option_10, option_11], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4, optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12])
diff --git a/tests/dictionaries/80leadership_subfamily/tiramisu/multi.py b/tests/dictionaries/80leadership_subfamily/tiramisu/multi.py
new file mode 100644
index 000000000..8efd3d6c0
--- /dev/null
+++ b/tests/dictionaries/80leadership_subfamily/tiramisu/multi.py
@@ -0,0 +1,52 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+option_9 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_10 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_11 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_8 = Leadership(name="leader1", doc="leader", children=[option_9, option_10, option_11], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4, optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24])
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"normal"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_17)))), properties=frozenset({"normal"}))
+optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"normal"}))
+option_20 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_21 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_22 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_19 = Leadership(name="leader1", doc="leader", children=[option_20, option_21, option_22], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="general1", doc="general1", children=[optiondescription_15, optiondescription_19], properties=frozenset({"normal"}))
+optiondescription_26 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"normal"}))
+optiondescription_25 = OptionDescription(name="2", doc="2", children=[optiondescription_26])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_25])
diff --git a/tests/dictionaries/80leadership_subfamily/xml/00-base.xml b/tests/dictionaries/80leadership_subfamily/xml/00-base.xml
new file mode 100644
index 000000000..3ec72723f
--- /dev/null
+++ b/tests/dictionaries/80leadership_subfamily/xml/00-base.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ follower1
+ follower2
+
+
+
diff --git a/tests/dictionaries/10leadership_multi/yml/00-base.yml b/tests/dictionaries/80leadership_subfamily/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_multi/yml/00-base.yml
rename to tests/dictionaries/80leadership_subfamily/yml/00-base.yml
diff --git a/tests/dictionaries/80load_autofreeze_no_variable/__init__.py b/tests/dictionaries/80load_autofreeze_no_variable/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/80load_autofreeze_no_variable/errno_81 b/tests/dictionaries/80load_autofreeze_no_variable/errno_81
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries/80load_autofreeze_no_variable/xml/00-base.xml b/tests/dictionaries/80load_autofreeze_no_variable/xml/00-base.xml
deleted file mode 100644
index 97339cfa5..000000000
--- a/tests/dictionaries/80load_autofreeze_no_variable/xml/00-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- no
-
-
-
diff --git a/tests/dictionaries/80load_autofreeze_no_variable/yml/00-base.yml b/tests/dictionaries/80load_autofreeze_no_variable/yml/00-base.yml
deleted file mode 100644
index 84bbacc73..000000000
--- a/tests/dictionaries/80load_autofreeze_no_variable/yml/00-base.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: myvar
- auto_freeze: true
- value:
- - text: 'no'
diff --git a/tests/dictionaries/80load_disabled_if_inaccent_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/80load_disabled_if_inaccent_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..3edeea471
--- /dev/null
+++ b/tests/dictionaries/80load_disabled_if_inaccent_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,32 @@
+Général:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.Général.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.Général.condition == "oui" %}true{% else %}false{% endif
+ %}'
+Général2:
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.Général.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries/80load_disabled_if_inaccent_family/yml/00-base.yml b/tests/dictionaries/80load_disabled_if_inaccent_family/yml/00-base.yml
deleted file mode 100644
index c16ecf8d9..000000000
--- a/tests/dictionaries/80load_disabled_if_inaccent_family/yml/00-base.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: "G\xE9n\xE9ral"
- variables:
- - variable:
- - name: condition
- type: string
- description: No change
- value:
- - text: non
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: mode_conteneur_actif2
- type: string
- description: No change
- value:
- - text: non
- - name: "G\xE9n\xE9ral2"
- variables:
- - variable:
- - name: mode_conteneur_actif3
- type: string
- description: No change
- hidden: true
- value:
- - text: non
-constraints:
-- condition:
- - name: disabled_if_in
- source: condition
- param:
- - text: oui
- target:
- - type: variable
- text: mode_conteneur_actif
- - type: variable
- text: mode_conteneur_actif2
- - type: family
- text: "G\xE9n\xE9ral2"
diff --git a/tests/dictionaries/80load_emptyvalue/dictionaries/rougail/00-base.yml b/tests/dictionaries/80load_emptyvalue/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..601dd0138
--- /dev/null
+++ b/tests/dictionaries/80load_emptyvalue/dictionaries/rougail/00-base.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries/80load_emptyvalue/yml/00-base.yml b/tests/dictionaries/80load_emptyvalue/yml/00-base.yml
deleted file mode 100644
index 97f204519..000000000
--- a/tests/dictionaries/80load_emptyvalue/yml/00-base.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: null
diff --git a/tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1646e3575
--- /dev/null
+++ b/tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/00-base.yml
@@ -0,0 +1,20 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general-1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/01-base.yml b/tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..82fe13f56
--- /dev/null
+++ b/tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/01-base.yml
@@ -0,0 +1,5 @@
+general-1:
+ leader:
+ redefine: true
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries/80load_leadership_normalize_family/yml/00-base.yml b/tests/dictionaries/80load_leadership_normalize_family/yml/00-base.yml
deleted file mode 100644
index cd3156836..000000000
--- a/tests/dictionaries/80load_leadership_normalize_family/yml/00-base.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: general-1
- variables:
- - family:
- - name: leader
- description: leader
- leadership: true
- variables:
- - variable:
- - name: leader
- type: string
- description: leader
- multi: true
- - name: follower1
- type: string
- description: follower1
- - name: follower2
- type: string
- description: follower2
diff --git a/tests/dictionaries/80load_leadership_normalize_family/yml/01-base.yml b/tests/dictionaries/80load_leadership_normalize_family/yml/01-base.yml
deleted file mode 100644
index 10f761965..000000000
--- a/tests/dictionaries/80load_leadership_normalize_family/yml/01-base.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general-1
- variables:
- - variable:
- - name: leader
- redefine: true
- mandatory: true
diff --git a/tests/dictionaries/80load_mandatoryifin_family/yml/00-base.yml b/tests/dictionaries/80load_mandatoryifin_family/yml/00-base.yml
deleted file mode 100644
index 9188aee66..000000000
--- a/tests/dictionaries/80load_mandatoryifin_family/yml/00-base.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: condition
- type: boolean
- - name: general2
- variables:
- - variable:
- - name: my_variable
-constraints:
-- condition:
- - name: mandatory_if_in
- source: condition
- param:
- - text: oui
- target:
- - type: family
- text: general2
diff --git a/tests/dictionaries/80mode_conflict/dictionaries/rougail/00-base.yml b/tests/dictionaries/80mode_conflict/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..c6cbcd7ce
--- /dev/null
+++ b/tests/dictionaries/80mode_conflict/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+server_deployed:
+ type: boolean
+general:
+ mode: normal
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ mode: expert
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80mode_conflict/yml/00-base.yml b/tests/dictionaries/80mode_conflict/yml/00-base.yml
deleted file mode 100644
index 1e938c94b..000000000
--- a/tests/dictionaries/80mode_conflict/yml/00-base.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: server_deployed
- type: boolean
-- family:
- - name: general
- mode: normal
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- mode: expert
- value:
- - text: non
diff --git a/tests/dictionaries/80mode_leadership_conflict/dictionaries/rougail/00-base.yml b/tests/dictionaries/80mode_leadership_conflict/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1cf65776a
--- /dev/null
+++ b/tests/dictionaries/80mode_leadership_conflict/dictionaries/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+leadermode:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ mode: expert
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_list }}'
+ follower1:
+ type: string
+ description: follower1
+ mode: normal
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries/80mode_leadership_conflict/yml/00-base.yml b/tests/dictionaries/80mode_leadership_conflict/yml/00-base.yml
deleted file mode 100644
index 224501498..000000000
--- a/tests/dictionaries/80mode_leadership_conflict/yml/00-base.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- mode: expert
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: leadermode
- variables:
- - family:
- - name: leader
- description: leader
- leadership: true
- variables:
- - variable:
- - name: leader
- type: string
- description: leader
- multi: true
- mode: expert
- - name: follower1
- type: string
- description: follower1
- mode: normal
- - name: follower2
- type: string
- description: follower2
-constraints:
-- fill:
- - name: calc_list
- param:
- - name: valeur
- text: valfill
- target:
- - text: leader
diff --git a/tests/dictionaries/80multi_family_mode_conflict/dictionaries/rougail/00-base.yml b/tests/dictionaries/80multi_family_mode_conflict/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ca32826b0
--- /dev/null
+++ b/tests/dictionaries/80multi_family_mode_conflict/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+base:
+ mode: expert
+ subfamily:
+ variable:
+ mode: basic
+version: '1.0'
diff --git a/tests/dictionaries/80multi_family_mode_conflict/yml/00-base.yml b/tests/dictionaries/80multi_family_mode_conflict/yml/00-base.yml
deleted file mode 100644
index 91bb42e8b..000000000
--- a/tests/dictionaries/80multi_family_mode_conflict/yml/00-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: base
- mode: expert
- variables:
- - family:
- - name: subfamily
- variables:
- - variable:
- - name: variable
- mode: basic
diff --git a/tests/dictionaries/80nil_with_value/dictionaries/rougail/00-base.yml b/tests/dictionaries/80nil_with_value/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..70b006087
--- /dev/null
+++ b/tests/dictionaries/80nil_with_value/dictionaries/rougail/00-base.yml
@@ -0,0 +1,24 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == null %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == null %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries/80nil_with_value/yml/00-base.yml b/tests/dictionaries/80nil_with_value/yml/00-base.yml
deleted file mode 100644
index e47247dd3..000000000
--- a/tests/dictionaries/80nil_with_value/yml/00-base.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: condition
- type: string
- description: No change
- value:
- - text: non
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: non
- - name: mode_conteneur_actif2
- type: string
- description: No change
- hidden: true
- value:
- - text: non
-constraints:
-- condition:
- - name: disabled_if_in
- source: condition
- param:
- - type: nil
- text: value
- target:
- - type: variable
- text: mode_conteneur_actif
- - type: variable
- text: mode_conteneur_actif2
- - type: filelist
- text: afilllist
diff --git a/tests/dictionaries/80no_leadership_index/dictionaries/rougail/00-base.yml b/tests/dictionaries/80no_leadership_index/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..08a03ce39
--- /dev/null
+++ b/tests/dictionaries/80no_leadership_index/dictionaries/rougail/00-base.yml
@@ -0,0 +1,8 @@
+my_variable:
+ default:
+ type: jinja
+ jinja: '{{ __index | calc_val }}'
+ params:
+ __index:
+ type: index
+version: '1.0'
diff --git a/tests/dictionaries/80no_leadership_index/yml/00-base.yml b/tests/dictionaries/80no_leadership_index/yml/00-base.yml
deleted file mode 100644
index a0f69f0e1..000000000
--- a/tests/dictionaries/80no_leadership_index/yml/00-base.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: my_variable
-constraints:
-- fill:
- - name: calc_val
- param:
- - type: index
- target:
- - text: my_variable
diff --git a/tests/dictionaries/80override_twice/dictionaries/rougail/00-base.yml b/tests/dictionaries/80override_twice/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..6522280e9
--- /dev/null
+++ b/tests/dictionaries/80override_twice/dictionaries/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80override_twice/dictionaries/services/00-base.yml b/tests/dictionaries/80override_twice/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..77725cdaa
--- /dev/null
+++ b/tests/dictionaries/80override_twice/dictionaries/services/00-base.yml
@@ -0,0 +1,3 @@
+test.service:
+ override: null
+version: '1.0'
diff --git a/tests/dictionaries/80redefine_double_error/dictionaries/rougail/00-base.yml b/tests/dictionaries/80redefine_double_error/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..da1ea3c58
--- /dev/null
+++ b/tests/dictionaries/80redefine_double_error/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80redefine_double_error/dictionaries/rougail/01-base.yml b/tests/dictionaries/80redefine_double_error/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..7c59b7f2b
--- /dev/null
+++ b/tests/dictionaries/80redefine_double_error/dictionaries/rougail/01-base.yml
@@ -0,0 +1,4 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+version: '1.0'
diff --git a/tests/dictionaries/80redefine_double_error/dictionaries/rougail/02-base.yml b/tests/dictionaries/80redefine_double_error/dictionaries/rougail/02-base.yml
new file mode 100644
index 000000000..7fbcd3a39
--- /dev/null
+++ b/tests/dictionaries/80redefine_double_error/dictionaries/rougail/02-base.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ type: string
+version: '1.0'
diff --git a/tests/dictionaries/80redefine_double_error/yml/00-base.yml b/tests/dictionaries/80redefine_double_error/yml/00-base.yml
deleted file mode 100644
index 8617016fb..000000000
--- a/tests/dictionaries/80redefine_double_error/yml/00-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: Redefine description
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80redefine_double_error/yml/01-base.yml b/tests/dictionaries/80redefine_double_error/yml/01-base.yml
deleted file mode 100644
index 55007491c..000000000
--- a/tests/dictionaries/80redefine_double_error/yml/01-base.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- redefine: true
diff --git a/tests/dictionaries/80redefine_double_error/yml/02-base.yml b/tests/dictionaries/80redefine_double_error/yml/02-base.yml
deleted file mode 100644
index de7546c31..000000000
--- a/tests/dictionaries/80redefine_double_error/yml/02-base.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- redefine: true
- type: string
diff --git a/tests/dictionaries/80redefine_error/dictionaries/rougail/00-base.yml b/tests/dictionaries/80redefine_error/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..da1ea3c58
--- /dev/null
+++ b/tests/dictionaries/80redefine_error/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80redefine_error/dictionaries/rougail/01-redefine.yml b/tests/dictionaries/80redefine_error/dictionaries/rougail/01-redefine.yml
new file mode 100644
index 000000000..da1ea3c58
--- /dev/null
+++ b/tests/dictionaries/80redefine_error/dictionaries/rougail/01-redefine.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80redefine_error/yml/00-base.yml b/tests/dictionaries/80redefine_error/yml/00-base.yml
deleted file mode 100644
index 8617016fb..000000000
--- a/tests/dictionaries/80redefine_error/yml/00-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: Redefine description
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80redefine_error/yml/01-redefine.yml b/tests/dictionaries/80redefine_error/yml/01-redefine.yml
deleted file mode 100644
index 8617016fb..000000000
--- a/tests/dictionaries/80redefine_error/yml/01-redefine.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: Redefine description
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80redefine_fillerror/dictionaries/rougail/00-base.yml b/tests/dictionaries/80redefine_fillerror/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..70007ac9f
--- /dev/null
+++ b/tests/dictionaries/80redefine_fillerror/dictionaries/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "valeur" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries/80redefine_fillerror/yml/00-base.yml b/tests/dictionaries/80redefine_fillerror/yml/00-base.yml
deleted file mode 100644
index 6b4ccf688..000000000
--- a/tests/dictionaries/80redefine_fillerror/yml/00-base.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- hidden: true
- value:
- - text: non
-constraints:
-- fill:
- - name: calc_val
- param:
- - name: valeur
- text: valeur
- target:
- - text: mode_conteneur_actif
diff --git a/tests/dictionaries/80redefine_fillerror/yml/01-base.yml b/tests/dictionaries/80redefine_fillerror/yml/01-base.yml
deleted file mode 100644
index 7109c4bcb..000000000
--- a/tests/dictionaries/80redefine_fillerror/yml/01-base.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '0.10'
-constraints:
-- fill:
- - name: concat
- param:
- - name: valeur
- text: valeur
- target:
- - text: mode_conteneur_actif
diff --git a/tests/dictionaries/80redefine_notexists/dictionaries/rougail/00-base.yml b/tests/dictionaries/80redefine_notexists/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..da1ea3c58
--- /dev/null
+++ b/tests/dictionaries/80redefine_notexists/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80redefine_notexists/dictionaries/rougail/01-redefine.yml b/tests/dictionaries/80redefine_notexists/dictionaries/rougail/01-redefine.yml
new file mode 100644
index 000000000..ee8a2b9d1
--- /dev/null
+++ b/tests/dictionaries/80redefine_notexists/dictionaries/rougail/01-redefine.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif1:
+ redefine: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80redefine_notexists/yml/00-base.yml b/tests/dictionaries/80redefine_notexists/yml/00-base.yml
deleted file mode 100644
index 8617016fb..000000000
--- a/tests/dictionaries/80redefine_notexists/yml/00-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: Redefine description
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80redefine_notexists/yml/01-redefine.yml b/tests/dictionaries/80redefine_notexists/yml/01-redefine.yml
deleted file mode 100644
index b8d2da776..000000000
--- a/tests/dictionaries/80redefine_notexists/yml/01-redefine.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif1
- redefine: true
- value:
- - text: non
diff --git a/tests/dictionaries/80redefine_type/dictionaries/rougail/00-base.yml b/tests/dictionaries/80redefine_type/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..da1ea3c58
--- /dev/null
+++ b/tests/dictionaries/80redefine_type/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80redefine_type/dictionaries/rougail/01-redefine.yml b/tests/dictionaries/80redefine_type/dictionaries/rougail/01-redefine.yml
new file mode 100644
index 000000000..58125ae27
--- /dev/null
+++ b/tests/dictionaries/80redefine_type/dictionaries/rougail/01-redefine.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ type: number
+version: '1.0'
diff --git a/tests/dictionaries/80redefine_type/yml/00-base.yml b/tests/dictionaries/80redefine_type/yml/00-base.yml
deleted file mode 100644
index 8617016fb..000000000
--- a/tests/dictionaries/80redefine_type/yml/00-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: Redefine description
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80redefine_type/yml/01-redefine.yml b/tests/dictionaries/80redefine_type/yml/01-redefine.yml
deleted file mode 100644
index 26f0d4647..000000000
--- a/tests/dictionaries/80redefine_type/yml/01-redefine.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- redefine: true
- type: number
diff --git a/tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/00-base.yml b/tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..9d415e2b0
--- /dev/null
+++ b/tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/01-base.yml b/tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..7c59b7f2b
--- /dev/null
+++ b/tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/01-base.yml
@@ -0,0 +1,4 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+version: '1.0'
diff --git a/tests/dictionaries/80remove_fill_no_fill/yml/00-base.yml b/tests/dictionaries/80remove_fill_no_fill/yml/00-base.yml
deleted file mode 100644
index 5916d3e46..000000000
--- a/tests/dictionaries/80remove_fill_no_fill/yml/00-base.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: oui
- - name: mode_conteneur_actif1
- type: string
- description: No change
- value:
- - text: non
diff --git a/tests/dictionaries/80remove_fill_no_fill/yml/01-base.yml b/tests/dictionaries/80remove_fill_no_fill/yml/01-base.yml
deleted file mode 100644
index 144cc714d..000000000
--- a/tests/dictionaries/80remove_fill_no_fill/yml/01-base.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- redefine: true
- remove_fill: true
diff --git a/tests/dictionaries/80service_not_managed_overrides/dictionaries/rougail/00-base.yml b/tests/dictionaries/80service_not_managed_overrides/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0a95c96ec
--- /dev/null
+++ b/tests/dictionaries/80service_not_managed_overrides/dictionaries/rougail/00-base.yml
@@ -0,0 +1,4 @@
+var:
+ type: string
+ default: mailname
+version: '1.0'
diff --git a/tests/dictionaries/80service_not_managed_overrides/dictionaries/services/00-base.yml b/tests/dictionaries/80service_not_managed_overrides/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..77725cdaa
--- /dev/null
+++ b/tests/dictionaries/80service_not_managed_overrides/dictionaries/services/00-base.yml
@@ -0,0 +1,3 @@
+test.service:
+ override: null
+version: '1.0'
diff --git a/tests/dictionaries/80service_not_managed_overrides/yml/00-base.yml b/tests/dictionaries/80service_not_managed_overrides/yml/00-base.yml
deleted file mode 100644
index 89ae31dde..000000000
--- a/tests/dictionaries/80service_not_managed_overrides/yml/00-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: test
- manage: false
- override: null
-variables:
-- variable:
- - name: var
- type: string
- value:
- - text: mailname
diff --git a/tests/dictionaries/80services_ip_cidr_netmask/dictionaries/rougail/00-base.yml b/tests/dictionaries/80services_ip_cidr_netmask/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0fd12041c
--- /dev/null
+++ b/tests/dictionaries/80services_ip_cidr_netmask/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+nut_monitor_host:
+ type: network_cidr
+ mandatory: true
+nut_monitor_netmask:
+ type: netmask
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries/80services_ip_cidr_netmask/dictionaries/services/00-base.yml b/tests/dictionaries/80services_ip_cidr_netmask/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..b59853812
--- /dev/null
+++ b/tests/dictionaries/80services_ip_cidr_netmask/dictionaries/services/00-base.yml
@@ -0,0 +1,6 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host:
+ ip_type: variable
+ netmask: rougail.nut_monitor_netmask
+version: '1.0'
diff --git a/tests/dictionaries/80services_ip_cidr_netmask/yml/00-base.yml b/tests/dictionaries/80services_ip_cidr_netmask/yml/00-base.yml
deleted file mode 100644
index 9c6fbf46d..000000000
--- a/tests/dictionaries/80services_ip_cidr_netmask/yml/00-base.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: nut
- ip:
- - ip_type: variable
- netmask: nut_monitor_netmask
- text: nut_monitor_host
-variables:
-- variable:
- - name: nut_monitor_host
- type: network_cidr
- mandatory: true
- - name: nut_monitor_netmask
- type: netmask
- mandatory: true
diff --git a/tests/dictionaries/80services_ip_netmask/dictionaries/rougail/00-base.yml b/tests/dictionaries/80services_ip_netmask/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..3783759a8
--- /dev/null
+++ b/tests/dictionaries/80services_ip_netmask/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+nut_monitor_host:
+ type: ip
+ mandatory: true
+nut_monitor_netmask:
+ type: netmask
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries/80services_ip_netmask/dictionaries/services/00-base.yml b/tests/dictionaries/80services_ip_netmask/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..a57e6c9bb
--- /dev/null
+++ b/tests/dictionaries/80services_ip_netmask/dictionaries/services/00-base.yml
@@ -0,0 +1,5 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host:
+ netmask: rougail.nut_monitor_netmask
+version: '1.0'
diff --git a/tests/dictionaries/80services_ip_netmask/yml/00-base.yml b/tests/dictionaries/80services_ip_netmask/yml/00-base.yml
deleted file mode 100644
index 7fd5490e1..000000000
--- a/tests/dictionaries/80services_ip_netmask/yml/00-base.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: nut
- ip:
- - netmask: nut_monitor_netmask
- text: nut_monitor_host
-variables:
-- variable:
- - name: nut_monitor_host
- type: ip
- mandatory: true
- - name: nut_monitor_netmask
- type: netmask
- mandatory: true
diff --git a/tests/dictionaries/80services_ip_network_no_netmask/dictionaries/rougail/00-base.yml b/tests/dictionaries/80services_ip_network_no_netmask/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..781438de0
--- /dev/null
+++ b/tests/dictionaries/80services_ip_network_no_netmask/dictionaries/rougail/00-base.yml
@@ -0,0 +1,4 @@
+nut_monitor_host:
+ type: network
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries/80services_ip_network_no_netmask/dictionaries/services/00-base.yml b/tests/dictionaries/80services_ip_network_no_netmask/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..8637277cc
--- /dev/null
+++ b/tests/dictionaries/80services_ip_network_no_netmask/dictionaries/services/00-base.yml
@@ -0,0 +1,4 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host: {}
+version: '1.0'
diff --git a/tests/dictionaries/80services_ip_network_no_netmask/yml/00-base.yml b/tests/dictionaries/80services_ip_network_no_netmask/yml/00-base.yml
deleted file mode 100644
index e75ce2ef6..000000000
--- a/tests/dictionaries/80services_ip_network_no_netmask/yml/00-base.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: nut
- ip:
- - text: nut_monitor_host
-variables:
-- variable:
- - name: nut_monitor_host
- type: network
- mandatory: true
diff --git a/tests/dictionaries/80services_ip_not_netmask/dictionaries/rougail/00-base.yml b/tests/dictionaries/80services_ip_not_netmask/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ba88b2e88
--- /dev/null
+++ b/tests/dictionaries/80services_ip_not_netmask/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+nut_monitor_host:
+ type: network
+ mandatory: true
+nut_monitor_netmask:
+ type: ip
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries/80services_ip_not_netmask/dictionaries/services/00-base.yml b/tests/dictionaries/80services_ip_not_netmask/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..a57e6c9bb
--- /dev/null
+++ b/tests/dictionaries/80services_ip_not_netmask/dictionaries/services/00-base.yml
@@ -0,0 +1,5 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host:
+ netmask: rougail.nut_monitor_netmask
+version: '1.0'
diff --git a/tests/dictionaries/80services_ip_not_netmask/yml/00-base.yml b/tests/dictionaries/80services_ip_not_netmask/yml/00-base.yml
deleted file mode 100644
index 37a009c0e..000000000
--- a/tests/dictionaries/80services_ip_not_netmask/yml/00-base.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: nut
- ip:
- - netmask: nut_monitor_netmask
- text: nut_monitor_host
-variables:
-- variable:
- - name: nut_monitor_host
- type: network
- mandatory: true
- - name: nut_monitor_netmask
- type: ip
- mandatory: true
diff --git a/tests/dictionaries/80services_ip_wrong_type/dictionaries/rougail/00-base.yml b/tests/dictionaries/80services_ip_wrong_type/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..df6453685
--- /dev/null
+++ b/tests/dictionaries/80services_ip_wrong_type/dictionaries/rougail/00-base.yml
@@ -0,0 +1,5 @@
+nut_monitor_host:
+ type: string
+ mandatory: true
+ default: 192.168.0.1
+version: '1.0'
diff --git a/tests/dictionaries/80services_ip_wrong_type/dictionaries/services/00-base.yml b/tests/dictionaries/80services_ip_wrong_type/dictionaries/services/00-base.yml
new file mode 100644
index 000000000..8637277cc
--- /dev/null
+++ b/tests/dictionaries/80services_ip_wrong_type/dictionaries/services/00-base.yml
@@ -0,0 +1,4 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host: {}
+version: '1.0'
diff --git a/tests/dictionaries/80services_ip_wrong_type/yml/00-base.yml b/tests/dictionaries/80services_ip_wrong_type/yml/00-base.yml
deleted file mode 100644
index 02e72d8f7..000000000
--- a/tests/dictionaries/80services_ip_wrong_type/yml/00-base.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-version: '0.10'
-services:
-- service:
- - name: nut
- ip:
- - text: nut_monitor_host
-variables:
-- variable:
- - name: nut_monitor_host
- type: string
- mandatory: true
- value:
- - text: 192.168.0.1
diff --git a/tests/dictionaries/80target_list_unknown/dictionaries/rougail/00-base.yml b/tests/dictionaries/80target_list_unknown/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..5b42c2211
--- /dev/null
+++ b/tests/dictionaries/80target_list_unknown/dictionaries/rougail/00-base.yml
@@ -0,0 +1,3 @@
+condition:
+ type: boolean
+version: '1.0'
diff --git a/tests/dictionaries/80target_list_unknown/yml/00-base.yml b/tests/dictionaries/80target_list_unknown/yml/00-base.yml
deleted file mode 100644
index 5ef8c8e53..000000000
--- a/tests/dictionaries/80target_list_unknown/yml/00-base.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: condition
- type: boolean
-constraints:
-- condition:
- - name: disabled_if_in
- source: condition
- param:
- - text: true
- target:
- - type: filelist
- text: unknown
diff --git a/tests/dictionaries/80unknown_type/dictionaries/rougail/00-base.yml b/tests/dictionaries/80unknown_type/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..513cec78f
--- /dev/null
+++ b/tests/dictionaries/80unknown_type/dictionaries/rougail/00-base.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ type: unknown
+ description: Description
+version: '1.0'
diff --git a/tests/dictionaries/80unknown_type/yml/00-base.yml b/tests/dictionaries/80unknown_type/yml/00-base.yml
deleted file mode 100644
index e22b03272..000000000
--- a/tests/dictionaries/80unknown_type/yml/00-base.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: unknown
- description: Description
diff --git a/tests/dictionaries/80valid_entier_invalid_param/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_entier_invalid_param/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0f8e94bec
--- /dev/null
+++ b/tests/dictionaries/80valid_entier_invalid_param/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ int:
+ type: number
+ description: No change
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.int | valid_entier(unknown=0) }}'
+version: '1.0'
diff --git a/tests/dictionaries/80valid_entier_invalid_param/yml/00-base.yml b/tests/dictionaries/80valid_entier_invalid_param/yml/00-base.yml
deleted file mode 100644
index ec5267d33..000000000
--- a/tests/dictionaries/80valid_entier_invalid_param/yml/00-base.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: b
- - name: int
- type: number
- description: No change
-constraints:
-- check:
- - name: valid_entier
- param:
- - name: unknown
- type: number
- text: 0
- target:
- - text: int
diff --git a/tests/dictionaries/80valid_entier_not_number/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_entier_not_number/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..24905a878
--- /dev/null
+++ b/tests/dictionaries/80valid_entier_not_number/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ int:
+ type: number
+ description: No change
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.int | valid_entier(mini="0", maxi=100) }}'
+version: '1.0'
diff --git a/tests/dictionaries/80valid_entier_not_number/yml/00-base.yml b/tests/dictionaries/80valid_entier_not_number/yml/00-base.yml
deleted file mode 100644
index 2cc6522c2..000000000
--- a/tests/dictionaries/80valid_entier_not_number/yml/00-base.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: b
- - name: int
- type: number
- description: No change
-constraints:
-- check:
- - name: valid_entier
- param:
- - name: mini
- text: 0
- - name: maxi
- type: number
- text: 100
- target:
- - text: int
diff --git a/tests/dictionaries/80valid_entier_without_param/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_entier_without_param/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..1076a346f
--- /dev/null
+++ b/tests/dictionaries/80valid_entier_without_param/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ int:
+ type: number
+ description: No change
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.int | valid_entier }}'
+version: '1.0'
diff --git a/tests/dictionaries/80valid_entier_without_param/yml/00-base.yml b/tests/dictionaries/80valid_entier_without_param/yml/00-base.yml
deleted file mode 100644
index 5325c9840..000000000
--- a/tests/dictionaries/80valid_entier_without_param/yml/00-base.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: b
- - name: int
- type: number
- description: No change
-constraints:
-- check:
- - name: valid_entier
- target:
- - text: int
diff --git a/tests/dictionaries/80valid_enum_multi_param/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_enum_multi_param/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..4d4168dff
--- /dev/null
+++ b/tests/dictionaries/80valid_enum_multi_param/dictionaries/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode_conteneur_actif:
+ type: choice
+ description: No change
+ default: a
+ choices:
+ - type: variable
+ variable: rougail.general.var
+ - d
+ var:
+ type: string
+ description: New variable
+ multi: true
+ default:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries/80valid_enum_multi_param/yml/00-base.yml b/tests/dictionaries/80valid_enum_multi_param/yml/00-base.yml
deleted file mode 100644
index cf0da6877..000000000
--- a/tests/dictionaries/80valid_enum_multi_param/yml/00-base.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: choice
- description: No change
- value:
- - type: string
- text: a
- choice:
- - type: variable
- text: var
- - type: string
- text: d
- - name: var
- type: string
- description: New variable
- multi: true
- value:
- - text: a
- - text: b
- - text: c
diff --git a/tests/dictionaries/80valid_enum_multi_variable/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_enum_multi_variable/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..47544b8a5
--- /dev/null
+++ b/tests/dictionaries/80valid_enum_multi_variable/dictionaries/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ mode_conteneur_actif:
+ type: choice
+ description: No change
+ default: a
+ choices:
+ - type: variable
+ variable: rougail.general.var
+ - type: variable
+ variable: rougail.general.var2
+ var:
+ type: string
+ description: New variable
+ multi: true
+ default:
+ - a
+ - b
+ - c
+ var2:
+ type: string
+ description: New variable
+ multi: true
+ default:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries/80valid_enum_multi_variable/yml/00-base.yml b/tests/dictionaries/80valid_enum_multi_variable/yml/00-base.yml
deleted file mode 100644
index 81d37d09c..000000000
--- a/tests/dictionaries/80valid_enum_multi_variable/yml/00-base.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: choice
- description: No change
- value:
- - type: string
- text: a
- choice:
- - type: variable
- text: var
- - type: variable
- text: var2
- - name: var
- type: string
- description: New variable
- multi: true
- value:
- - text: a
- - text: b
- - text: c
- - name: var2
- type: string
- description: New variable
- multi: true
- value:
- - text: a
- - text: b
- - text: c
diff --git a/tests/dictionaries/80valid_enum_no_choice/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_enum_no_choice/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..6c7181863
--- /dev/null
+++ b/tests/dictionaries/80valid_enum_no_choice/dictionaries/rougail/00-base.yml
@@ -0,0 +1,14 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: c
+version: '1.0'
diff --git a/tests/dictionaries/80valid_enum_no_choice/yml/00-base.yml b/tests/dictionaries/80valid_enum_no_choice/yml/00-base.yml
deleted file mode 100644
index 33e938df0..000000000
--- a/tests/dictionaries/80valid_enum_no_choice/yml/00-base.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- mode: expert
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: enumfam
- mode: expert
- variables:
- - variable:
- - name: enumvar
- type: choice
- description: multi
- help: bla bla bla
- value:
- - type: string
- text: c
diff --git a/tests/dictionaries/80valid_enum_none_multi_variable/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_enum_none_multi_variable/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..908a8cdad
--- /dev/null
+++ b/tests/dictionaries/80valid_enum_none_multi_variable/dictionaries/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: choice
+ description: No change
+ default: a
+ choices:
+ - type: variable
+ variable: rougail.general.var
+ var:
+ type: string
+ description: New variable
+ default: a
+version: '1.0'
diff --git a/tests/dictionaries/80valid_enum_none_multi_variable/yml/00-base.yml b/tests/dictionaries/80valid_enum_none_multi_variable/yml/00-base.yml
deleted file mode 100644
index 8dc771d63..000000000
--- a/tests/dictionaries/80valid_enum_none_multi_variable/yml/00-base.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: choice
- description: No change
- value:
- - type: string
- text: a
- choice:
- - type: variable
- text: var
- - name: var
- type: string
- description: New variable
- value:
- - text: a
diff --git a/tests/dictionaries/80valid_enum_not_choice/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_enum_not_choice/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..e2c597d60
--- /dev/null
+++ b/tests/dictionaries/80valid_enum_not_choice/dictionaries/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: string
+ description: multi
+ help: bla bla bla
+ default: c
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries/80valid_enum_not_choice/yml/00-base.yml b/tests/dictionaries/80valid_enum_not_choice/yml/00-base.yml
deleted file mode 100644
index f47a2193a..000000000
--- a/tests/dictionaries/80valid_enum_not_choice/yml/00-base.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- mode: expert
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: enumfam
- mode: expert
- variables:
- - variable:
- - name: enumvar
- type: string
- description: multi
- help: bla bla bla
- value:
- - text: c
- choice:
- - type: string
- text: a
- - type: string
- text: b
- - type: string
- text: c
diff --git a/tests/dictionaries/80valid_enum_number_without_value/yml/00-base.yml b/tests/dictionaries/80valid_enum_number_without_value/yml/00-base.yml
deleted file mode 100644
index 236d81d57..000000000
--- a/tests/dictionaries/80valid_enum_number_without_value/yml/00-base.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- mode: expert
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: enumfam
- mode: expert
- variables:
- - variable:
- - name: enumvar
- type: choice
- description: enumvar
- help: bla bla bla
- choice:
- - type: number
- value:
- - type: number
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/__init__.py b/tests/dictionaries/80valid_enum_variables/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_delete_before_create/__init__.py
rename to tests/dictionaries/80valid_enum_variables/__init__.py
diff --git a/tests/dictionaries/80valid_enum_variables/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_enum_variables/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..303f2f03f
--- /dev/null
+++ b/tests/dictionaries/80valid_enum_variables/dictionaries/rougail/00-base.yml
@@ -0,0 +1,26 @@
+---
+version: '1.0'
+general:
+ mode_conteneur_actif:
+ type: choice
+ description: No change
+ default: a
+ choices:
+ - type: variable
+ variable: rougail.general.var1
+ - type: variable
+ variable: rougail.general.var2
+ - type: variable
+ variable: rougail.general.var3
+ var1:
+ type: string
+ description: New variable
+ default: a
+ var2:
+ type: string
+ description: New variable
+ default: b
+ var3:
+ type: string
+ description: New variable
+ default: c
diff --git a/tests/dictionaries/80valid_enum_variables/makedict/after.json b/tests/dictionaries/80valid_enum_variables/makedict/after.json
new file mode 100644
index 000000000..da7c19731
--- /dev/null
+++ b/tests/dictionaries/80valid_enum_variables/makedict/after.json
@@ -0,0 +1,14 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "a"
+ },
+ "rougail.general.var": {
+ "owner": "default",
+ "value": [
+ "a",
+ "b",
+ "c"
+ ]
+ }
+}
diff --git a/tests/dictionaries/80valid_enum_variables/makedict/base.json b/tests/dictionaries/80valid_enum_variables/makedict/base.json
new file mode 100644
index 000000000..0d2bcba8b
--- /dev/null
+++ b/tests/dictionaries/80valid_enum_variables/makedict/base.json
@@ -0,0 +1,8 @@
+{
+ "rougail.general.mode_conteneur_actif": "a",
+ "rougail.general.var": [
+ "a",
+ "b",
+ "c"
+ ]
+}
diff --git a/tests/dictionaries/80valid_enum_variables/makedict/before.json b/tests/dictionaries/80valid_enum_variables/makedict/before.json
new file mode 100644
index 000000000..da7c19731
--- /dev/null
+++ b/tests/dictionaries/80valid_enum_variables/makedict/before.json
@@ -0,0 +1,14 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "a"
+ },
+ "rougail.general.var": {
+ "owner": "default",
+ "value": [
+ "a",
+ "b",
+ "c"
+ ]
+ }
+}
diff --git a/tests/dictionaries/80valid_enum_variables/tiramisu/base.py b/tests/dictionaries/80valid_enum_variables/tiramisu/base.py
new file mode 100644
index 000000000..c5dbb8e6f
--- /dev/null
+++ b/tests/dictionaries/80valid_enum_variables/tiramisu/base.py
@@ -0,0 +1,69 @@
+from tiramisu import *
+from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+global func
+func = {'calc_value': calc_value}
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ func[function] = getattr(func_, function)
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+from tiramisu.error import ValueWarning
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ global ENV, CONVERT_OPTION
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split()]
+ values = convert(values)
+ return values if values != '' and values != 'None' else None
+def variable_to_property(prop, value):
+ return prop if value else None
+def jinja_to_property(prop, **kwargs):
+ value = func['jinja_to_function'](**kwargs)
+ return func['variable_to_property'](prop, value)
+def valid_with_jinja(warning=False, **kwargs):
+ global ValueWarning
+ value = func['jinja_to_function'](**kwargs)
+ if value:
+ if warning:
+ raise ValueWarning(value)
+ else:
+ raise ValueError(value)
+func['jinja_to_function'] = jinja_to_function
+func['jinja_to_property'] = jinja_to_property
+func['variable_to_property'] = variable_to_property
+func['valid_with_jinja'] = valid_with_jinja
+dict_env = {}
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.filters = func
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "normal", "notempty"}))
+option_3 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func['calc_value'], Params((ParamOption(option_4)), kwargs={'multi': ParamValue(False), 'allow_none': ParamValue(True)})), default="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/80valid_enum_variables/tiramisu/multi.py b/tests/dictionaries/80valid_enum_variables/tiramisu/multi.py
new file mode 100644
index 000000000..f375bb3e9
--- /dev/null
+++ b/tests/dictionaries/80valid_enum_variables/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
+option_2 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func.calc_value, Params((ParamOption(option_3)))), default="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_6 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
+option_5 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func.calc_value, Params((ParamOption(option_6)))), default="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries/80valid_enum_variables/xml/00-base.xml b/tests/dictionaries/80valid_enum_variables/xml/00-base.xml
new file mode 100644
index 000000000..c758f48a1
--- /dev/null
+++ b/tests/dictionaries/80valid_enum_variables/xml/00-base.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ a
+ var
+
+
+ a
+ b
+ c
+
+
+
+
+
diff --git a/tests/dictionaries/11valid_enum_variable/yml/00-base.yml b/tests/dictionaries/80valid_enum_variables/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11valid_enum_variable/yml/00-base.yml
rename to tests/dictionaries/80valid_enum_variables/yml/00-base.yml
diff --git a/tests/dictionaries/80value_not_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/80value_not_multi/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..505d9a58f
--- /dev/null
+++ b/tests/dictionaries/80value_not_multi/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+nut_monitor_host:
+ type: ip
+ mandatory: true
+ default:
+ - 192.168.0.1
+ - 192.168.0.2
+version: '1.0'
diff --git a/tests/dictionaries/80value_not_multi/yml/00-base.yml b/tests/dictionaries/80value_not_multi/yml/00-base.yml
deleted file mode 100644
index ed5db06dd..000000000
--- a/tests/dictionaries/80value_not_multi/yml/00-base.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: nut_monitor_host
- type: ip
- mandatory: true
- value:
- - text: 192.168.0.1
- - text: 192.168.0.2
diff --git a/tests/dictionaries/80variable_accent/dictionaries/rougail/00-base.yml b/tests/dictionaries/80variable_accent/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..5f8611896
--- /dev/null
+++ b/tests/dictionaries/80variable_accent/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ variableAccenté:
+ type: string
+ description: No change
+ default: non
+Other:
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80variable_accent/dictionaries/rougail/01-base.yml b/tests/dictionaries/80variable_accent/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..d50b486ea
--- /dev/null
+++ b/tests/dictionaries/80variable_accent/dictionaries/rougail/01-base.yml
@@ -0,0 +1,7 @@
+Général:
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80variable_accent/dictionaries/rougail/02-base.yml b/tests/dictionaries/80variable_accent/dictionaries/rougail/02-base.yml
new file mode 100644
index 000000000..bce32b41b
--- /dev/null
+++ b/tests/dictionaries/80variable_accent/dictionaries/rougail/02-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80variable_accent/yml/00-base.yml b/tests/dictionaries/80variable_accent/yml/00-base.yml
deleted file mode 100644
index 6dd0d6d28..000000000
--- a/tests/dictionaries/80variable_accent/yml/00-base.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: "variableAccent\xE9"
- type: string
- description: No change
- value:
- - text: non
- - name: Other
- variables:
- - variable:
- - name: mode_conteneur_actif3
- type: string
- description: No change
- hidden: true
- value:
- - text: non
-constraints:
-- condition:
- - name: disabled_if_in
- source: mode_conteneur_actif3
- param:
- - text: non
- target:
- - type: variable
- text: mode_conteneur_actif
diff --git a/tests/dictionaries/80variable_accent/yml/01-base.yml b/tests/dictionaries/80variable_accent/yml/01-base.yml
deleted file mode 100644
index 5a571d63e..000000000
--- a/tests/dictionaries/80variable_accent/yml/01-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: "G\xE9n\xE9ral"
- variables:
- - variable:
- - name: mode_conteneur_actif1
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80variable_accent/yml/02-base.yml b/tests/dictionaries/80variable_accent/yml/02-base.yml
deleted file mode 100644
index 2841f2739..000000000
--- a/tests/dictionaries/80variable_accent/yml/02-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: mode_conteneur_actif2
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/80variable_extra/dictionaries/extra/00-base.yml b/tests/dictionaries/80variable_extra/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..992946427
--- /dev/null
+++ b/tests/dictionaries/80variable_extra/dictionaries/extra/00-base.yml
@@ -0,0 +1,2 @@
+day: {}
+version: '1.0'
diff --git a/tests/dictionaries/80variable_extra/dictionaries/rougail/00-base.yml b/tests/dictionaries/80variable_extra/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..86179e740
--- /dev/null
+++ b/tests/dictionaries/80variable_extra/dictionaries/rougail/00-base.yml
@@ -0,0 +1,2 @@
+extra: {}
+version: '1.0'
diff --git a/tests/dictionaries/80variable_extra/yml/00-base.yml b/tests/dictionaries/80variable_extra/yml/00-base.yml
deleted file mode 100644
index b55833699..000000000
--- a/tests/dictionaries/80variable_extra/yml/00-base.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: extra
diff --git a/tests/dictionaries/80variable_extra/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries/80variable_extra/yml/extra_dirs/extra/00-base.yml
deleted file mode 100644
index 4a844620f..000000000
--- a/tests/dictionaries/80variable_extra/yml/extra_dirs/extra/00-base.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: day
diff --git a/tests/dictionaries/80variable_family_not_same_name/dictionaries/rougail/00-base.yml b/tests/dictionaries/80variable_family_not_same_name/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..0ef61971f
--- /dev/null
+++ b/tests/dictionaries/80variable_family_not_same_name/dictionaries/rougail/00-base.yml
@@ -0,0 +1,3 @@
+general:
+ my_variable2: {}
+version: '1.0'
diff --git a/tests/dictionaries/80variable_family_not_same_name/yml/00-base.yml b/tests/dictionaries/80variable_family_not_same_name/yml/00-base.yml
deleted file mode 100644
index a935eb2ca..000000000
--- a/tests/dictionaries/80variable_family_not_same_name/yml/00-base.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: general
-- family:
- - name: general
- variables:
- - variable:
- - name: my_variable2
diff --git a/tests/dictionaries/80variable_rougail/dictionaries/rougail/00-base.yml b/tests/dictionaries/80variable_rougail/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ba1c34b83
--- /dev/null
+++ b/tests/dictionaries/80variable_rougail/dictionaries/rougail/00-base.yml
@@ -0,0 +1,2 @@
+rougail: {}
+version: '1.0'
diff --git a/tests/dictionaries/80variable_rougail/yml/00-base.yml b/tests/dictionaries/80variable_rougail/yml/00-base.yml
deleted file mode 100644
index 4ab3bad99..000000000
--- a/tests/dictionaries/80variable_rougail/yml/00-base.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: rougail
diff --git a/tests/dictionaries/80variable_underscode/dictionaries/rougail/00-base.yml b/tests/dictionaries/80variable_underscode/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..9705ba416
--- /dev/null
+++ b/tests/dictionaries/80variable_underscode/dictionaries/rougail/00-base.yml
@@ -0,0 +1,4 @@
+---
+version: '1.0'
+_my_variable:
+ type: string
diff --git a/tests/dictionaries/80variable_up/dictionaries/rougail/00-base.yml b/tests/dictionaries/80variable_up/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..7a748e339
--- /dev/null
+++ b/tests/dictionaries/80variable_up/dictionaries/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ variableAccent:
+ type: string
+ description: No change
+ default: non
+Other:
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/80variable_up/yml/00-base.yml b/tests/dictionaries/80variable_up/yml/00-base.yml
deleted file mode 100644
index fd072e56d..000000000
--- a/tests/dictionaries/80variable_up/yml/00-base.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: variableAccent
- type: string
- description: No change
- value:
- - text: non
- - name: Other
- variables:
- - variable:
- - name: mode_conteneur_actif3
- type: string
- description: No change
- hidden: true
- value:
- - text: non
-constraints:
-- condition:
- - name: disabled_if_in
- source: mode_conteneur_actif3
- param:
- - text: non
- target:
- - type: variable
- text: mode_conteneur_actif
diff --git a/tests/dictionaries/81extra_externalspace/dictionaries/extra/00-base.yml b/tests/dictionaries/81extra_externalspace/dictionaries/extra/00-base.yml
new file mode 100644
index 000000000..47d02767d
--- /dev/null
+++ b/tests/dictionaries/81extra_externalspace/dictionaries/extra/00-base.yml
@@ -0,0 +1,21 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default: none
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries/81extra_externalspace/dictionaries/extra1/00-base.yml b/tests/dictionaries/81extra_externalspace/dictionaries/extra1/00-base.yml
new file mode 100644
index 000000000..aedf01921
--- /dev/null
+++ b/tests/dictionaries/81extra_externalspace/dictionaries/extra1/00-base.yml
@@ -0,0 +1,5 @@
+external:
+ description:
+ type: string
+ default: test
+version: '1.0'
diff --git a/tests/dictionaries/81extra_externalspace/dictionaries/rougail/00-base.yml b/tests/dictionaries/81extra_externalspace/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..7978196cd
--- /dev/null
+++ b/tests/dictionaries/81extra_externalspace/dictionaries/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries/81extra_externalspace/yml/00-base.yml b/tests/dictionaries/81extra_externalspace/yml/00-base.yml
deleted file mode 100644
index 5dac3936a..000000000
--- a/tests/dictionaries/81extra_externalspace/yml/00-base.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- variables:
- - variable:
- - name: activer_ejabberd
- type: string
- description: No change
- hidden: true
- value:
- - text: non
diff --git a/tests/dictionaries/81extra_externalspace/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries/81extra_externalspace/yml/extra_dirs/extra/00-base.yml
deleted file mode 100644
index 6722541d2..000000000
--- a/tests/dictionaries/81extra_externalspace/yml/extra_dirs/extra/00-base.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: ejabberd
- variables:
- - variable:
- - name: description
- type: string
- value:
- - text: Exportation de la base de ejabberd
- - name: day
- type: choice
- mandatory: true
- choice:
- - text: none
- - text: daily
- - text: weekly
- - text: monthly
- value:
- - text: none
- - name: mode
- type: choice
- mandatory: true
- value:
- - text: pre
- choice:
- - text: pre
- - text: post
diff --git a/tests/dictionaries/81extra_externalspace/yml/extra_dirs/extra1/00-base.yml b/tests/dictionaries/81extra_externalspace/yml/extra_dirs/extra1/00-base.yml
deleted file mode 100644
index e5a7ca440..000000000
--- a/tests/dictionaries/81extra_externalspace/yml/extra_dirs/extra1/00-base.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: external
- variables:
- - variable:
- - name: description
- type: string
- value:
- - text: test
-constraints:
-- fill:
- - name: calc_multi_condition
- param:
- - text: non
- - type: variable
- name: condition_1
- text: activer_ejabberd
- - name: match
- text: none
- - name: mismatch
- text: daily
- target:
- - text: extra.ejabberd.day
diff --git a/tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/00-base.yml b/tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..552b83f33
--- /dev/null
+++ b/tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/00-base.yml
@@ -0,0 +1,3 @@
+enumvar:
+ type: string
+version: '1.0'
diff --git a/tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/01-base.yml b/tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/01-base.yml
new file mode 100644
index 000000000..b1ec9a764
--- /dev/null
+++ b/tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/01-base.yml
@@ -0,0 +1,4 @@
+enumvar:
+ redefine: true
+ choices: null
+version: '1.0'
diff --git a/tests/dictionaries/88remove_choice_not_choice/yml/00-base.yml b/tests/dictionaries/88remove_choice_not_choice/yml/00-base.yml
deleted file mode 100644
index 7529b5db1..000000000
--- a/tests/dictionaries/88remove_choice_not_choice/yml/00-base.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: enumvar
- type: string
diff --git a/tests/dictionaries/88remove_choice_not_choice/yml/01-base.yml b/tests/dictionaries/88remove_choice_not_choice/yml/01-base.yml
deleted file mode 100644
index f609e8538..000000000
--- a/tests/dictionaries/88remove_choice_not_choice/yml/01-base.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-version: '0.10'
-variables:
-- variable:
- - name: enumvar
- redefine: true
- remove_choice: true
diff --git a/tests/dictionaries/88valid_enum_invalid_default/dictionaries/rougail/00-base.yml b/tests/dictionaries/88valid_enum_invalid_default/dictionaries/rougail/00-base.yml
new file mode 100644
index 000000000..ad21ba135
--- /dev/null
+++ b/tests/dictionaries/88valid_enum_invalid_default/dictionaries/rougail/00-base.yml
@@ -0,0 +1,17 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: enumvar
+ default: a
+ choices:
+ - '1'
+ - '2'
+ - '3'
+version: '1.0'
diff --git a/tests/dictionaries/88valid_enum_invalid_default/yml/00-base.yml b/tests/dictionaries/88valid_enum_invalid_default/yml/00-base.yml
deleted file mode 100644
index 9d4549548..000000000
--- a/tests/dictionaries/88valid_enum_invalid_default/yml/00-base.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-version: '0.10'
-variables:
-- family:
- - name: general
- mode: expert
- variables:
- - variable:
- - name: mode_conteneur_actif
- type: string
- description: No change
- value:
- - text: non
- - name: enumfam
- mode: expert
- variables:
- - variable:
- - name: enumvar
- type: choice
- description: enumvar
- value:
- - type: string
- text: a
- choice:
- - type: string
- text: 1
- - type: string
- text: 2
- - type: string
- text: 3
diff --git a/tests/dictionaries_old/00empty/00_base.xml b/tests/dictionaries_old/00empty/00_base.xml
deleted file mode 100644
index 78227d6fc..000000000
--- a/tests/dictionaries_old/00empty/00_base.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/00empty/makedict/after.json b/tests/dictionaries_old/00empty/makedict/after.json
index fd94145f9..9cd2d3dde 100644
--- a/tests/dictionaries_old/00empty/makedict/after.json
+++ b/tests/dictionaries_old/00empty/makedict/after.json
@@ -1,9 +1,9 @@
{
- "services.tata.activate": {
+ "services.tata_service.activate": {
"owner": "default",
"value": true
},
- "services.tata.manage": {
+ "services.tata_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/00empty/makedict/base.json b/tests/dictionaries_old/00empty/makedict/base.json
index df4366ea1..2bcec6972 100644
--- a/tests/dictionaries_old/00empty/makedict/base.json
+++ b/tests/dictionaries_old/00empty/makedict/base.json
@@ -1,4 +1,4 @@
{
- "services.tata.activate": true,
- "services.tata.manage": true
+ "services.tata_service.activate": true,
+ "services.tata_service.manage": true
}
diff --git a/tests/dictionaries_old/00empty/makedict/before.json b/tests/dictionaries_old/00empty/makedict/before.json
index fd94145f9..9cd2d3dde 100644
--- a/tests/dictionaries_old/00empty/makedict/before.json
+++ b/tests/dictionaries_old/00empty/makedict/before.json
@@ -1,9 +1,9 @@
{
- "services.tata.activate": {
+ "services.tata_service.activate": {
"owner": "default",
"value": true
},
- "services.tata.manage": {
+ "services.tata_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/00empty/result/services/00_base.yml b/tests/dictionaries_old/00empty/result/services/00_base.yml
new file mode 100644
index 000000000..c68a20606
--- /dev/null
+++ b/tests/dictionaries_old/00empty/result/services/00_base.yml
@@ -0,0 +1,2 @@
+tata.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/00empty/tiramisu/base.py b/tests/dictionaries_old/00empty/tiramisu/base.py
index b91f13551..652389f75 100644
--- a/tests/dictionaries_old/00empty/tiramisu/base.py
+++ b/tests/dictionaries_old/00empty/tiramisu/base.py
@@ -1,18 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = BoolOption(name="activate", doc="activate", default=True)
option_4 = BoolOption(name="manage", doc="manage", default=True)
-option_2 = OptionDescription(name="tata", doc="tata", children=[option_3, option_4])
-option_1 = OptionDescription(name="services", doc="services", children=[option_2], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="tata_service", doc="tata_service", children=[option_3, option_4])
+optiondescription_2.impl_set_information('type', "service")
+optiondescription_1 = OptionDescription(name="services", doc="services", children=[optiondescription_2], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/00empty/tiramisu/multi.py b/tests/dictionaries_old/00empty/tiramisu/multi.py
new file mode 100644
index 000000000..8a3dd5d53
--- /dev/null
+++ b/tests/dictionaries_old/00empty/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_1 = BoolOption(name="activate", doc="activate", default=True)
+option_2 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="tata_service", doc="tata.service", children=[option_1, option_2])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_3 = BoolOption(name="activate", doc="activate", default=True)
+option_4 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_10 = OptionDescription(name="tata_service", doc="tata.service", children=[option_3, option_4])
+optiondescription_10.impl_set_information('type', "service")
+optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
+optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_8])
diff --git a/tests/dictionaries_old/00empty/xml/00_base.xml b/tests/dictionaries_old/00empty/xml/00_base.xml
new file mode 100644
index 000000000..17be1b823
--- /dev/null
+++ b/tests/dictionaries_old/00empty/xml/00_base.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/00empty/yml/00_base.yml b/tests/dictionaries_old/00empty/yml/00_base.yml
similarity index 100%
rename from tests/dictionaries/00empty/yml/00_base.yml
rename to tests/dictionaries_old/00empty/yml/00_base.yml
diff --git a/tests/dictionaries_old/00load_autofreeze/00-base.xml b/tests/dictionaries_old/00load_autofreeze/00-base.xml
deleted file mode 100644
index 92f639a10..000000000
--- a/tests/dictionaries_old/00load_autofreeze/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- no
-
-
- False
-
-
-
diff --git a/tests/dictionaries_old/00load_autofreeze/__init__.py b/tests/dictionaries_old/00load_autofreeze/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/00load_autofreeze/makedict/after.json b/tests/dictionaries_old/00load_autofreeze/makedict/after.json
deleted file mode 100644
index 36e336b25..000000000
--- a/tests/dictionaries_old/00load_autofreeze/makedict/after.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.myvar": {
- "owner": "forced",
- "value": "no"
- },
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries_old/00load_autofreeze/makedict/base.json b/tests/dictionaries_old/00load_autofreeze/makedict/base.json
deleted file mode 100644
index 92b8b0109..000000000
--- a/tests/dictionaries_old/00load_autofreeze/makedict/base.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "rougail.myvar": "no",
- "rougail.server_deployed": false
-}
diff --git a/tests/dictionaries_old/00load_autofreeze/makedict/before.json b/tests/dictionaries_old/00load_autofreeze/makedict/before.json
deleted file mode 100644
index eaf8d2ecf..000000000
--- a/tests/dictionaries_old/00load_autofreeze/makedict/before.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.myvar": {
- "owner": "default",
- "value": "no"
- },
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries_old/00load_autofreeze/tiramisu/base.py b/tests/dictionaries_old/00load_autofreeze/tiramisu/base.py
deleted file mode 100644
index d9e1aeff5..000000000
--- a/tests/dictionaries_old/00load_autofreeze/tiramisu/base.py
+++ /dev/null
@@ -1,17 +0,0 @@
-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 tiramisu4 import *
-except:
- from tiramisu import *
-option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="myvar", doc="myvar", default="no", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue(True)}))}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
diff --git a/tests/dictionaries_old/00load_autofreezeexpert/00-base.xml b/tests/dictionaries_old/00load_autofreezeexpert/00-base.xml
deleted file mode 100644
index 5c1546e2d..000000000
--- a/tests/dictionaries_old/00load_autofreezeexpert/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- no
-
-
- False
-
-
-
diff --git a/tests/dictionaries_old/00load_autofreezeexpert/__init__.py b/tests/dictionaries_old/00load_autofreezeexpert/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/00load_autofreezeexpert/makedict/after.json b/tests/dictionaries_old/00load_autofreezeexpert/makedict/after.json
deleted file mode 100644
index 1082f86ab..000000000
--- a/tests/dictionaries_old/00load_autofreezeexpert/makedict/after.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.my_var": {
- "owner": "forced",
- "value": "no"
- },
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries_old/00load_autofreezeexpert/makedict/base.json b/tests/dictionaries_old/00load_autofreezeexpert/makedict/base.json
deleted file mode 100644
index 911baaaeb..000000000
--- a/tests/dictionaries_old/00load_autofreezeexpert/makedict/base.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "rougail.my_var": "no",
- "rougail.server_deployed": false
-}
diff --git a/tests/dictionaries_old/00load_autofreezeexpert/makedict/before.json b/tests/dictionaries_old/00load_autofreezeexpert/makedict/before.json
deleted file mode 100644
index 7c8f380b7..000000000
--- a/tests/dictionaries_old/00load_autofreezeexpert/makedict/before.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.my_var": {
- "owner": "default",
- "value": "no"
- },
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- }
-}
diff --git a/tests/dictionaries_old/00load_autofreezeexpert/tiramisu/base.py b/tests/dictionaries_old/00load_autofreezeexpert/tiramisu/base.py
deleted file mode 100644
index b742e378b..000000000
--- a/tests/dictionaries_old/00load_autofreezeexpert/tiramisu/base.py
+++ /dev/null
@@ -1,17 +0,0 @@
-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 tiramisu4 import *
-except:
- from tiramisu import *
-option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"expert", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue(True)}))}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
diff --git a/tests/dictionaries_old/00load_autosave/00-base.xml b/tests/dictionaries_old/00load_autosave/00-base.xml
deleted file mode 100644
index 647c823d7..000000000
--- a/tests/dictionaries_old/00load_autosave/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/00load_autosave/result/rougail/00-base.yml b/tests/dictionaries_old/00load_autosave/result/rougail/00-base.yml
new file mode 100644
index 000000000..d0c8eeb01
--- /dev/null
+++ b/tests/dictionaries_old/00load_autosave/result/rougail/00-base.yml
@@ -0,0 +1,10 @@
+server_deployed:
+ type: boolean
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ auto_save: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/00load_autosave/tiramisu/base.py b/tests/dictionaries_old/00load_autosave/tiramisu/base.py
index 6f6f426e6..a04e599f0 100644
--- a/tests/dictionaries_old/00load_autosave/tiramisu/base.py
+++ b/tests/dictionaries_old/00load_autosave/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "force_store_value", "mandatory"}))
-option_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/00load_autosave/tiramisu/multi.py b/tests/dictionaries_old/00load_autosave/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/00load_autosave/tiramisu/multi.py
rename to tests/dictionaries_old/00load_autosave/tiramisu/multi.py
diff --git a/tests/dictionaries_old/00load_autosave/xml/00-base.xml b/tests/dictionaries_old/00load_autosave/xml/00-base.xml
new file mode 100644
index 000000000..731c00e56
--- /dev/null
+++ b/tests/dictionaries_old/00load_autosave/xml/00-base.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/00load_autosave/yml/00-base.yml b/tests/dictionaries_old/00load_autosave/yml/00-base.yml
new file mode 100644
index 000000000..f68705312
--- /dev/null
+++ b/tests/dictionaries_old/00load_autosave/yml/00-base.yml
@@ -0,0 +1,16 @@
+version: '0.10'
+variables:
+- variable:
+ - name: server_deployed
+ type: boolean
+- family:
+ - name: general
+ description: "g\xE9n\xE9ral"
+ variables:
+ - variable:
+ - name: mode_conteneur_actif
+ type: string
+ description: No change
+ auto_save: true
+ value:
+ - text: non
diff --git a/tests/dictionaries_old/00load_autosaveexpert/00-base.xml b/tests/dictionaries_old/00load_autosaveexpert/00-base.xml
deleted file mode 100644
index 2959c5c30..000000000
--- a/tests/dictionaries_old/00load_autosaveexpert/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/00load_autosaveexpert/result/rougail/00-base.yml b/tests/dictionaries_old/00load_autosaveexpert/result/rougail/00-base.yml
new file mode 100644
index 000000000..6bed2dd57
--- /dev/null
+++ b/tests/dictionaries_old/00load_autosaveexpert/result/rougail/00-base.yml
@@ -0,0 +1,11 @@
+server_deployed:
+ type: boolean
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ auto_save: true
+ mode: expert
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/00load_autosaveexpert/tiramisu/base.py b/tests/dictionaries_old/00load_autosaveexpert/tiramisu/base.py
index 285bb10b3..9211a85b5 100644
--- a/tests/dictionaries_old/00load_autosaveexpert/tiramisu/base.py
+++ b/tests/dictionaries_old/00load_autosaveexpert/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "force_store_value", "mandatory"}))
-option_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/00load_autosaveexpert/tiramisu/multi.py b/tests/dictionaries_old/00load_autosaveexpert/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/00load_autosaveexpert/tiramisu/multi.py
rename to tests/dictionaries_old/00load_autosaveexpert/tiramisu/multi.py
diff --git a/tests/dictionaries_old/00load_autosaveexpert/xml/00-base.xml b/tests/dictionaries_old/00load_autosaveexpert/xml/00-base.xml
new file mode 100644
index 000000000..a4e833da3
--- /dev/null
+++ b/tests/dictionaries_old/00load_autosaveexpert/xml/00-base.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/00load_autosaveexpert/yml/00-base.yml b/tests/dictionaries_old/00load_autosaveexpert/yml/00-base.yml
new file mode 100644
index 000000000..7c6409deb
--- /dev/null
+++ b/tests/dictionaries_old/00load_autosaveexpert/yml/00-base.yml
@@ -0,0 +1,17 @@
+version: '0.10'
+variables:
+- variable:
+ - name: server_deployed
+ type: boolean
+- family:
+ - name: general
+ description: "g\xE9n\xE9ral"
+ variables:
+ - variable:
+ - name: mode_conteneur_actif
+ type: string
+ description: No change
+ auto_save: true
+ mode: expert
+ value:
+ - text: non
diff --git a/tests/dictionaries_old/00load_comment/00-base.xml b/tests/dictionaries_old/00load_comment/00-base.xml
deleted file mode 100644
index 7ff4428fe..000000000
--- a/tests/dictionaries_old/00load_comment/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/00load_comment/result/rougail/00-base.yml b/tests/dictionaries_old/00load_comment/result/rougail/00-base.yml
new file mode 100644
index 000000000..1085cc1cc
--- /dev/null
+++ b/tests/dictionaries_old/00load_comment/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/00load_comment/tiramisu/base.py b/tests/dictionaries_old/00load_comment/tiramisu/base.py
index 90d2f6309..f60bf8c84 100644
--- a/tests/dictionaries_old/00load_comment/tiramisu/base.py
+++ b/tests/dictionaries_old/00load_comment/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/00load_comment/tiramisu/multi.py b/tests/dictionaries_old/00load_comment/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/00load_comment/tiramisu/multi.py
rename to tests/dictionaries_old/00load_comment/tiramisu/multi.py
diff --git a/tests/dictionaries/00load_comment/xml/00-base.xml b/tests/dictionaries_old/00load_comment/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/00load_comment/xml/00-base.xml
rename to tests/dictionaries_old/00load_comment/xml/00-base.xml
diff --git a/tests/dictionaries/00load_comment/yml/00-base.yml b/tests/dictionaries_old/00load_comment/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/00load_comment/yml/00-base.yml
rename to tests/dictionaries_old/00load_comment/yml/00-base.yml
diff --git a/tests/dictionaries_old/00load_notype/00-base.xml b/tests/dictionaries_old/00load_notype/00-base.xml
deleted file mode 100644
index 14c82f1ca..000000000
--- a/tests/dictionaries_old/00load_notype/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/00load_notype/result/rougail/00-base.yml b/tests/dictionaries_old/00load_notype/result/rougail/00-base.yml
new file mode 100644
index 000000000..1355fc8a8
--- /dev/null
+++ b/tests/dictionaries_old/00load_notype/result/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ without_type:
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/00load_notype/tiramisu/base.py b/tests/dictionaries_old/00load_notype/tiramisu/base.py
index 77bf46518..2cafc2dcb 100644
--- a/tests/dictionaries_old/00load_notype/tiramisu/base.py
+++ b/tests/dictionaries_old/00load_notype/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_4 = StrOption(name="without_type", doc="without_type", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/00load_notype/tiramisu/multi.py b/tests/dictionaries_old/00load_notype/tiramisu/multi.py
new file mode 100644
index 000000000..e26761811
--- /dev/null
+++ b/tests/dictionaries_old/00load_notype/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="without_type", doc="without_type", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="without_type", doc="without_type", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="général", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/00load_notype/xml/00-base.xml b/tests/dictionaries_old/00load_notype/xml/00-base.xml
new file mode 100644
index 000000000..6594e9397
--- /dev/null
+++ b/tests/dictionaries_old/00load_notype/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/00load_notype/yml/00-base.yml b/tests/dictionaries_old/00load_notype/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/00load_notype/yml/00-base.yml
rename to tests/dictionaries_old/00load_notype/yml/00-base.yml
diff --git a/tests/dictionaries_old/00load_save/00-base.xml b/tests/dictionaries_old/00load_save/00-base.xml
deleted file mode 100644
index 849130906..000000000
--- a/tests/dictionaries_old/00load_save/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/00load_save/result/rougail/00-base.yml b/tests/dictionaries_old/00load_save/result/rougail/00-base.yml
new file mode 100644
index 000000000..1085cc1cc
--- /dev/null
+++ b/tests/dictionaries_old/00load_save/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/00load_save/tiramisu/base.py b/tests/dictionaries_old/00load_save/tiramisu/base.py
index 90d2f6309..f60bf8c84 100644
--- a/tests/dictionaries_old/00load_save/tiramisu/base.py
+++ b/tests/dictionaries_old/00load_save/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/00load_save/tiramisu/multi.py b/tests/dictionaries_old/00load_save/tiramisu/multi.py
new file mode 100644
index 000000000..6428e06da
--- /dev/null
+++ b/tests/dictionaries_old/00load_save/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/00load_save/xml/00-base.xml b/tests/dictionaries_old/00load_save/xml/00-base.xml
new file mode 100644
index 000000000..f0576995a
--- /dev/null
+++ b/tests/dictionaries_old/00load_save/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/00load_save/yml/00-base.yml b/tests/dictionaries_old/00load_save/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/00load_save/yml/00-base.yml
rename to tests/dictionaries_old/00load_save/yml/00-base.yml
diff --git a/tests/dictionaries_old/00load_subfolder/99-base.xml b/tests/dictionaries_old/00load_subfolder/99-base.xml
deleted file mode 100644
index 849130906..000000000
--- a/tests/dictionaries_old/00load_subfolder/99-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/00load_subfolder/__init__.py b/tests/dictionaries_old/00load_subfolder/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/00load_subfolder/subfolder/00-base.xml b/tests/dictionaries_old/00load_subfolder/subfolder/00-base.xml
deleted file mode 100644
index 27c7f0b7e..000000000
--- a/tests/dictionaries_old/00load_subfolder/subfolder/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/00load_subfolder/tiramisu/base.py b/tests/dictionaries_old/00load_subfolder/tiramisu/base.py
deleted file mode 100644
index 809b77b5c..000000000
--- a/tests/dictionaries_old/00load_subfolder/tiramisu/base.py
+++ /dev/null
@@ -1,18 +0,0 @@
-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 tiramisu4 import *
-except:
- from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
diff --git a/tests/dictionaries_old/01auto_autofreeze/00-base.xml b/tests/dictionaries_old/01auto_autofreeze/00-base.xml
deleted file mode 100644
index db10997f7..000000000
--- a/tests/dictionaries_old/01auto_autofreeze/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- no
-
-
- no
-
-
-
-
- yes
- my_variable
-
-
-
diff --git a/tests/dictionaries_old/01auto_autofreeze/__init__.py b/tests/dictionaries_old/01auto_autofreeze/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/01auto_autofreeze/makedict/after.json b/tests/dictionaries_old/01auto_autofreeze/makedict/after.json
deleted file mode 100644
index 5c307f3b6..000000000
--- a/tests/dictionaries_old/01auto_autofreeze/makedict/after.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- },
- "rougail.my_variable": {
- "owner": "forced",
- "value": "yes"
- }
-}
diff --git a/tests/dictionaries_old/01auto_autofreeze/makedict/base.json b/tests/dictionaries_old/01auto_autofreeze/makedict/base.json
deleted file mode 100644
index 2ca3008f9..000000000
--- a/tests/dictionaries_old/01auto_autofreeze/makedict/base.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "rougail.server_deployed": false,
- "rougail.my_variable": "yes"
-}
diff --git a/tests/dictionaries_old/01auto_autofreeze/makedict/before.json b/tests/dictionaries_old/01auto_autofreeze/makedict/before.json
deleted file mode 100644
index b2905faac..000000000
--- a/tests/dictionaries_old/01auto_autofreeze/makedict/before.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.server_deployed": {
- "owner": "default",
- "value": false
- },
- "rougail.my_variable": {
- "owner": "default",
- "value": "yes"
- }
-}
diff --git a/tests/dictionaries_old/01auto_autofreeze/tiramisu/base.py b/tests/dictionaries_old/01auto_autofreeze/tiramisu/base.py
deleted file mode 100644
index f6fb7363f..000000000
--- a/tests/dictionaries_old/01auto_autofreeze/tiramisu/base.py
+++ /dev/null
@@ -1,17 +0,0 @@
-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 tiramisu4 import *
-except:
- from tiramisu import *
-option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="my_variable", doc="my_variable", default=Calculation(func.calc_val, Params((ParamValue("yes")))), properties=frozenset({"basic", "force_store_value", "hidden", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, todict=True, notraisepropertyerror=True), 'expected': ParamValue(True)}))}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
diff --git a/tests/dictionaries_old/01auto_base/00-base.xml b/tests/dictionaries_old/01auto_base/00-base.xml
deleted file mode 100644
index 4db9eed37..000000000
--- a/tests/dictionaries_old/01auto_base/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/01auto_base/result/rougail/00-base.yml b/tests/dictionaries_old/01auto_base/result/rougail/00-base.yml
new file mode 100644
index 000000000..011db2f68
--- /dev/null
+++ b/tests/dictionaries_old/01auto_base/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01auto_base/tiramisu/base.py b/tests/dictionaries_old/01auto_base/tiramisu/base.py
index 27b086b6d..6249a0b86 100644
--- a/tests/dictionaries_old/01auto_base/tiramisu/base.py
+++ b/tests/dictionaries_old/01auto_base/tiramisu/base.py
@@ -1,18 +1,60 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01auto_base/tiramisu/multi.py b/tests/dictionaries_old/01auto_base/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01auto_base/tiramisu/multi.py
rename to tests/dictionaries_old/01auto_base/tiramisu/multi.py
diff --git a/tests/dictionaries/01auto_base/xml/00-base.xml b/tests/dictionaries_old/01auto_base/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01auto_base/xml/00-base.xml
rename to tests/dictionaries_old/01auto_base/xml/00-base.xml
diff --git a/tests/dictionaries/01auto_base/yml/00-base.yml b/tests/dictionaries_old/01auto_base/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01auto_base/yml/00-base.yml
rename to tests/dictionaries_old/01auto_base/yml/00-base.yml
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/__init__.py b/tests/dictionaries_old/01auto_jinja_base/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_factory_dir/__init__.py
rename to tests/dictionaries_old/01auto_jinja_base/__init__.py
diff --git a/tests/dictionaries_old/00load_subfolder/makedict/after.json b/tests/dictionaries_old/01auto_jinja_base/makedict/after.json
similarity index 100%
rename from tests/dictionaries_old/00load_subfolder/makedict/after.json
rename to tests/dictionaries_old/01auto_jinja_base/makedict/after.json
diff --git a/tests/dictionaries_old/00load_subfolder/makedict/base.json b/tests/dictionaries_old/01auto_jinja_base/makedict/base.json
similarity index 100%
rename from tests/dictionaries_old/00load_subfolder/makedict/base.json
rename to tests/dictionaries_old/01auto_jinja_base/makedict/base.json
diff --git a/tests/dictionaries_old/00load_subfolder/makedict/before.json b/tests/dictionaries_old/01auto_jinja_base/makedict/before.json
similarity index 100%
rename from tests/dictionaries_old/00load_subfolder/makedict/before.json
rename to tests/dictionaries_old/01auto_jinja_base/makedict/before.json
diff --git a/tests/dictionaries_old/01auto_jinja_base/result/rougail/00-base.yml b/tests/dictionaries_old/01auto_jinja_base/result/rougail/00-base.yml
new file mode 100644
index 000000000..e89682f7f
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_base/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01auto_jinja_base/tiramisu/base.py b/tests/dictionaries_old/01auto_jinja_base/tiramisu/base.py
new file mode 100644
index 000000000..2f05eefab
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_base/tiramisu/base.py
@@ -0,0 +1,60 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01auto_jinja_base/tiramisu/multi.py b/tests/dictionaries_old/01auto_jinja_base/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01auto_jinja_base/tiramisu/multi.py
rename to tests/dictionaries_old/01auto_jinja_base/tiramisu/multi.py
diff --git a/tests/dictionaries/01auto_jinja_full_path/xml/00-base.xml b/tests/dictionaries_old/01auto_jinja_base/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01auto_jinja_full_path/xml/00-base.xml
rename to tests/dictionaries_old/01auto_jinja_base/xml/00-base.xml
diff --git a/tests/dictionaries/01auto_jinja_base/yml/00-base.yml b/tests/dictionaries_old/01auto_jinja_base/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01auto_jinja_base/yml/00-base.yml
rename to tests/dictionaries_old/01auto_jinja_base/yml/00-base.yml
diff --git a/tests/dictionaries/01base_file_utfchar/__init__.py b/tests/dictionaries_old/01auto_jinja_full_path/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_utfchar/__init__.py
rename to tests/dictionaries_old/01auto_jinja_full_path/__init__.py
diff --git a/tests/dictionaries_old/01auto_jinja_full_path/makedict/after.json b/tests/dictionaries_old/01auto_jinja_full_path/makedict/after.json
new file mode 100644
index 000000000..6ebfbbe96
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_full_path/makedict/after.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.mode_conteneur_actif1": {
+ "owner": "default",
+ "value": "non"
+ }
+}
diff --git a/tests/dictionaries_old/01auto_jinja_full_path/makedict/base.json b/tests/dictionaries_old/01auto_jinja_full_path/makedict/base.json
new file mode 100644
index 000000000..3f1a7b004
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_full_path/makedict/base.json
@@ -0,0 +1,4 @@
+{
+ "rougail.general.mode_conteneur_actif": "non",
+ "rougail.general.mode_conteneur_actif1": "non"
+}
diff --git a/tests/dictionaries_old/01auto_jinja_full_path/makedict/before.json b/tests/dictionaries_old/01auto_jinja_full_path/makedict/before.json
new file mode 100644
index 000000000..6ebfbbe96
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_full_path/makedict/before.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.mode_conteneur_actif1": {
+ "owner": "default",
+ "value": "non"
+ }
+}
diff --git a/tests/dictionaries_old/01auto_jinja_full_path/result/rougail/00-base.yml b/tests/dictionaries_old/01auto_jinja_full_path/result/rougail/00-base.yml
new file mode 100644
index 000000000..e89682f7f
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_full_path/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01auto_jinja_full_path/tiramisu/base.py b/tests/dictionaries_old/01auto_jinja_full_path/tiramisu/base.py
new file mode 100644
index 000000000..2f05eefab
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_full_path/tiramisu/base.py
@@ -0,0 +1,60 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01auto_jinja_full_path/tiramisu/multi.py b/tests/dictionaries_old/01auto_jinja_full_path/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01auto_jinja_full_path/tiramisu/multi.py
rename to tests/dictionaries_old/01auto_jinja_full_path/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01auto_jinja_full_path/xml/00-base.xml b/tests/dictionaries_old/01auto_jinja_full_path/xml/00-base.xml
new file mode 100644
index 000000000..30112ff77
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_full_path/xml/00-base.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/01auto_jinja_full_path/yml/00-base.yml b/tests/dictionaries_old/01auto_jinja_full_path/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01auto_jinja_full_path/yml/00-base.yml
rename to tests/dictionaries_old/01auto_jinja_full_path/yml/00-base.yml
diff --git a/tests/dictionaries/01base_file_var_source/__init__.py b/tests/dictionaries_old/01auto_jinja_if/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_file_var_source/__init__.py
rename to tests/dictionaries_old/01auto_jinja_if/__init__.py
diff --git a/tests/dictionaries_old/01auto_jinja_if/makedict/after.json b/tests/dictionaries_old/01auto_jinja_if/makedict/after.json
new file mode 100644
index 000000000..b9d4ee936
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if/makedict/after.json
@@ -0,0 +1,14 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.mode_conteneur_actif1": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.mode_conteneur_actif2": {
+ "owner": "default",
+ "value": "oui"
+ }
+}
diff --git a/tests/dictionaries_old/01auto_jinja_if/makedict/base.json b/tests/dictionaries_old/01auto_jinja_if/makedict/base.json
new file mode 100644
index 000000000..4eee7b615
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if/makedict/base.json
@@ -0,0 +1,5 @@
+{
+ "rougail.general.mode_conteneur_actif": "non",
+ "rougail.general.mode_conteneur_actif1": "non",
+ "rougail.general.mode_conteneur_actif2": "oui"
+}
diff --git a/tests/dictionaries_old/01auto_jinja_if/makedict/before.json b/tests/dictionaries_old/01auto_jinja_if/makedict/before.json
new file mode 100644
index 000000000..b9d4ee936
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if/makedict/before.json
@@ -0,0 +1,14 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.mode_conteneur_actif1": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.mode_conteneur_actif2": {
+ "owner": "default",
+ "value": "oui"
+ }
+}
diff --git a/tests/dictionaries_old/01auto_jinja_if/result/rougail/00-base.yml b/tests/dictionaries_old/01auto_jinja_if/result/rougail/00-base.yml
new file mode 100644
index 000000000..a8591c823
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if/result/rougail/00-base.yml
@@ -0,0 +1,20 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{% if mode_conteneur_actif1 == ''non'' %}non{% else %}oui{% endif %}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{% if mode_conteneur_actif1 == "non" %}oui{% else %}non{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/01auto_jinja_if/tiramisu/base.py b/tests/dictionaries_old/01auto_jinja_if/tiramisu/base.py
new file mode 100644
index 000000000..e537f17e0
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if/tiramisu/base.py
@@ -0,0 +1,62 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{% if mode_conteneur_actif1 == 'non' %}non{% else %}oui{% endif %}"
+dict_env['rougail.general.mode_conteneur_actif2'] = "{% if mode_conteneur_actif1 == \"non\" %}oui{% else %}non{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01auto_jinja_if/tiramisu/multi.py b/tests/dictionaries_old/01auto_jinja_if/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if/tiramisu/multi.py
rename to tests/dictionaries_old/01auto_jinja_if/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01auto_jinja_if/xml/00-base.xml b/tests/dictionaries_old/01auto_jinja_if/xml/00-base.xml
new file mode 100644
index 000000000..5e52c060c
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if/xml/00-base.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+ non
+
+
+
+
+
+
+ mode_conteneur_actif
+
+
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries_old/01auto_jinja_if/yml/00-base.yml b/tests/dictionaries_old/01auto_jinja_if/yml/00-base.yml
new file mode 100644
index 000000000..8076a61b9
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if/yml/00-base.yml
@@ -0,0 +1,29 @@
+version: '0.10'
+variables:
+- family:
+ - name: general
+ variables:
+ - variable:
+ - name: mode_conteneur_actif
+ type: string
+ description: No change
+ hidden: true
+ - name: mode_conteneur_actif1
+ type: string
+ description: No change
+ value:
+ - text: non
+ - name: mode_conteneur_actif2
+ type: string
+ description: No change
+ hidden: true
+constraints:
+- fill:
+ - name: '{% if mode_conteneur_actif1 == ''non'' %}non{% else %}oui{% endif %}'
+ type: jinja
+ target:
+ - text: mode_conteneur_actif
+ - name: '{% if mode_conteneur_actif1 == "non" %}oui{% else %}non{% endif %}'
+ type: jinja
+ target:
+ - text: mode_conteneur_actif2
diff --git a/tests/dictionaries/01base_provider/__init__.py b/tests/dictionaries_old/01auto_jinja_if_bool/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_provider/__init__.py
rename to tests/dictionaries_old/01auto_jinja_if_bool/__init__.py
diff --git a/tests/dictionaries_old/01auto_jinja_if_bool/makedict/after.json b/tests/dictionaries_old/01auto_jinja_if_bool/makedict/after.json
new file mode 100644
index 000000000..41001df3b
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_bool/makedict/after.json
@@ -0,0 +1,19 @@
+{
+ "rougail.general.bool": {
+ "owner": "default",
+ "value": true
+ },
+ "rougail.general.multi1": {
+ "owner": "default",
+ "value": [
+ true,
+ false
+ ]
+ },
+ "rougail.general.multi2": {
+ "owner": "default",
+ "value": [
+ false
+ ]
+ }
+}
diff --git a/tests/dictionaries_old/01auto_jinja_if_bool/makedict/base.json b/tests/dictionaries_old/01auto_jinja_if_bool/makedict/base.json
new file mode 100644
index 000000000..5ac1abd6f
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_bool/makedict/base.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.bool": true,
+ "rougail.general.multi1": [
+ true,
+ false
+ ],
+ "rougail.general.multi2": [
+ false
+ ]
+}
diff --git a/tests/dictionaries_old/01auto_jinja_if_bool/makedict/before.json b/tests/dictionaries_old/01auto_jinja_if_bool/makedict/before.json
new file mode 100644
index 000000000..41001df3b
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_bool/makedict/before.json
@@ -0,0 +1,19 @@
+{
+ "rougail.general.bool": {
+ "owner": "default",
+ "value": true
+ },
+ "rougail.general.multi1": {
+ "owner": "default",
+ "value": [
+ true,
+ false
+ ]
+ },
+ "rougail.general.multi2": {
+ "owner": "default",
+ "value": [
+ false
+ ]
+ }
+}
diff --git a/tests/dictionaries_old/01auto_jinja_if_bool/result/rougail/00-base.yml b/tests/dictionaries_old/01auto_jinja_if_bool/result/rougail/00-base.yml
new file mode 100644
index 000000000..37f123850
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_bool/result/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ bool:
+ type: boolean
+ multi1:
+ type: boolean
+ multi: true
+ default:
+ type: jinja
+ jinja: '{% if rougail.general.bool %}True,False{% else %}False{% endif %}'
+ multi2:
+ type: boolean
+ multi: true
+ default:
+ type: jinja
+ jinja: '{% if not rougail.general.bool %}True,False{% else %}False{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/01auto_jinja_if_bool/tiramisu/base.py b/tests/dictionaries_old/01auto_jinja_if_bool/tiramisu/base.py
new file mode 100644
index 000000000..15f436cd6
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_bool/tiramisu/base.py
@@ -0,0 +1,62 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.multi1'] = "{% if rougail.general.bool %}True,False{% else %}False{% endif %}"
+dict_env['rougail.general.multi2'] = "{% if not rougail.general.bool %}True,False{% else %}False{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
+option_4 = BoolOption(name="multi1", doc="multi1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.multi1), '__internal_type': ParamValue(boolean), '__internal_multi': ParamValue(True), 'rougail.general.bool': ParamOption(option_3)})), properties=frozenset({"normal", "notempty"}))
+option_5 = BoolOption(name="multi2", doc="multi2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.multi2), '__internal_type': ParamValue(boolean), '__internal_multi': ParamValue(True), 'rougail.general.bool': ParamOption(option_3)})), properties=frozenset({"normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01auto_jinja_if_bool/tiramisu/multi.py b/tests/dictionaries_old/01auto_jinja_if_bool/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_bool/tiramisu/multi.py
rename to tests/dictionaries_old/01auto_jinja_if_bool/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01auto_jinja_if_bool/xml/00-base.xml b/tests/dictionaries_old/01auto_jinja_if_bool/xml/00-base.xml
new file mode 100644
index 000000000..505940703
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_bool/xml/00-base.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+ multi1
+
+
+ multi2
+
+
+
diff --git a/tests/dictionaries/01auto_jinja_if_bool/yml/00-base.yml b/tests/dictionaries_old/01auto_jinja_if_bool/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_bool/yml/00-base.yml
rename to tests/dictionaries_old/01auto_jinja_if_bool/yml/00-base.yml
diff --git a/tests/dictionaries/01base_provider_extra/__init__.py b/tests/dictionaries_old/01auto_jinja_if_int/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_provider_extra/__init__.py
rename to tests/dictionaries_old/01auto_jinja_if_int/__init__.py
diff --git a/tests/dictionaries_old/01auto_jinja_if_int/makedict/after.json b/tests/dictionaries_old/01auto_jinja_if_int/makedict/after.json
new file mode 100644
index 000000000..5bff78440
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_int/makedict/after.json
@@ -0,0 +1,14 @@
+{
+ "rougail.bool": {
+ "owner": "default",
+ "value": true
+ },
+ "rougail.int1": {
+ "owner": "default",
+ "value": 1
+ },
+ "rougail.int2": {
+ "owner": "default",
+ "value": 4
+ }
+}
diff --git a/tests/dictionaries_old/01auto_jinja_if_int/makedict/base.json b/tests/dictionaries_old/01auto_jinja_if_int/makedict/base.json
new file mode 100644
index 000000000..98bf4d8aa
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_int/makedict/base.json
@@ -0,0 +1,5 @@
+{
+ "rougail.bool": true,
+ "rougail.int1": 1,
+ "rougail.int2": 4
+}
diff --git a/tests/dictionaries_old/01auto_jinja_if_int/makedict/before.json b/tests/dictionaries_old/01auto_jinja_if_int/makedict/before.json
new file mode 100644
index 000000000..5bff78440
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_int/makedict/before.json
@@ -0,0 +1,14 @@
+{
+ "rougail.bool": {
+ "owner": "default",
+ "value": true
+ },
+ "rougail.int1": {
+ "owner": "default",
+ "value": 1
+ },
+ "rougail.int2": {
+ "owner": "default",
+ "value": 4
+ }
+}
diff --git a/tests/dictionaries_old/01auto_jinja_if_int/result/rougail/00-base.yml b/tests/dictionaries_old/01auto_jinja_if_int/result/rougail/00-base.yml
new file mode 100644
index 000000000..09f2bf587
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_int/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+bool:
+ type: boolean
+int1:
+ type: number
+ default:
+ type: jinja
+ jinja: '{% if bool %}1{% else %}2{% endif %}'
+int2:
+ type: number
+ default:
+ type: jinja
+ jinja: '{% if not bool %}3{% else %}4{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/01auto_jinja_if_int/tiramisu/base.py b/tests/dictionaries_old/01auto_jinja_if_int/tiramisu/base.py
new file mode 100644
index 000000000..1212e1a48
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_int/tiramisu/base.py
@@ -0,0 +1,61 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.int1'] = "{% if bool %}1{% else %}2{% endif %}"
+dict_env['rougail.int2'] = "{% if not bool %}3{% else %}4{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_2 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
+option_3 = IntOption(name="int1", doc="int1", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.int1), '__internal_type': ParamValue(number), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_4 = IntOption(name="int2", doc="int2", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.int2), '__internal_type': ParamValue(number), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01auto_jinja_if_int/tiramisu/multi.py b/tests/dictionaries_old/01auto_jinja_if_int/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01auto_jinja_if_int/tiramisu/multi.py
rename to tests/dictionaries_old/01auto_jinja_if_int/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01auto_jinja_if_int/xml/00-base.xml b/tests/dictionaries_old/01auto_jinja_if_int/xml/00-base.xml
new file mode 100644
index 000000000..6d46923c7
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_int/xml/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+ int1
+
+
+ int2
+
+
+
diff --git a/tests/dictionaries_old/01auto_jinja_if_int/yml/00-base.yml b/tests/dictionaries_old/01auto_jinja_if_int/yml/00-base.yml
new file mode 100644
index 000000000..671161856
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_if_int/yml/00-base.yml
@@ -0,0 +1,19 @@
+version: '0.10'
+variables:
+- variable:
+ - name: bool
+ type: boolean
+ - name: int1
+ type: number
+ - name: int2
+ type: number
+constraints:
+- fill:
+ - name: '{% if bool %}1{% else %}2{% endif %}'
+ type: jinja
+ target:
+ - text: int1
+ - name: '{% if not bool %}3{% else %}4{% endif %}'
+ type: jinja
+ target:
+ - text: int2
diff --git a/tests/dictionaries/01base_provider_hidden/__init__.py b/tests/dictionaries_old/01auto_jinja_set/__init__.py
similarity index 100%
rename from tests/dictionaries/01base_provider_hidden/__init__.py
rename to tests/dictionaries_old/01auto_jinja_set/__init__.py
diff --git a/tests/dictionaries_old/01auto_jinja_set/makedict/after.json b/tests/dictionaries_old/01auto_jinja_set/makedict/after.json
new file mode 100644
index 000000000..5bff78440
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_set/makedict/after.json
@@ -0,0 +1,14 @@
+{
+ "rougail.bool": {
+ "owner": "default",
+ "value": true
+ },
+ "rougail.int1": {
+ "owner": "default",
+ "value": 1
+ },
+ "rougail.int2": {
+ "owner": "default",
+ "value": 4
+ }
+}
diff --git a/tests/dictionaries_old/01auto_jinja_set/makedict/base.json b/tests/dictionaries_old/01auto_jinja_set/makedict/base.json
new file mode 100644
index 000000000..98bf4d8aa
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_set/makedict/base.json
@@ -0,0 +1,5 @@
+{
+ "rougail.bool": true,
+ "rougail.int1": 1,
+ "rougail.int2": 4
+}
diff --git a/tests/dictionaries_old/01auto_jinja_set/makedict/before.json b/tests/dictionaries_old/01auto_jinja_set/makedict/before.json
new file mode 100644
index 000000000..5bff78440
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_set/makedict/before.json
@@ -0,0 +1,14 @@
+{
+ "rougail.bool": {
+ "owner": "default",
+ "value": true
+ },
+ "rougail.int1": {
+ "owner": "default",
+ "value": 1
+ },
+ "rougail.int2": {
+ "owner": "default",
+ "value": 4
+ }
+}
diff --git a/tests/dictionaries_old/01auto_jinja_set/result/rougail/00-base.yml b/tests/dictionaries_old/01auto_jinja_set/result/rougail/00-base.yml
new file mode 100644
index 000000000..6bc25540e
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_set/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+bool:
+ type: boolean
+int1:
+ type: number
+ default:
+ type: jinja
+ jinja: '{%set bool1 = bool %}{% if bool1 %}1{% else %}2{% endif %}'
+int2:
+ type: number
+ default:
+ type: jinja
+ jinja: '{%set bool1 = bool %}{% if not bool1 %}3{% else %}4{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/01auto_jinja_set/tiramisu/base.py b/tests/dictionaries_old/01auto_jinja_set/tiramisu/base.py
new file mode 100644
index 000000000..e8e07bcca
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_set/tiramisu/base.py
@@ -0,0 +1,61 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.int1'] = "{%set bool1 = bool %}{% if bool1 %}1{% else %}2{% endif %}"
+dict_env['rougail.int2'] = "{%set bool1 = bool %}{% if not bool1 %}3{% else %}4{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_2 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "normal"}))
+option_3 = IntOption(name="int1", doc="int1", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.int1), '__internal_type': ParamValue(number), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_4 = IntOption(name="int2", doc="int2", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.int2), '__internal_type': ParamValue(number), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01auto_jinja_set/tiramisu/multi.py b/tests/dictionaries_old/01auto_jinja_set/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01auto_jinja_set/tiramisu/multi.py
rename to tests/dictionaries_old/01auto_jinja_set/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01auto_jinja_set/xml/00-base.xml b/tests/dictionaries_old/01auto_jinja_set/xml/00-base.xml
new file mode 100644
index 000000000..f9fe91807
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_set/xml/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+ int1
+
+
+ int2
+
+
+
diff --git a/tests/dictionaries_old/01auto_jinja_set/yml/00-base.yml b/tests/dictionaries_old/01auto_jinja_set/yml/00-base.yml
new file mode 100644
index 000000000..f03546fbe
--- /dev/null
+++ b/tests/dictionaries_old/01auto_jinja_set/yml/00-base.yml
@@ -0,0 +1,19 @@
+version: '0.10'
+variables:
+- variable:
+ - name: bool
+ type: boolean
+ - name: int1
+ type: number
+ - name: int2
+ type: number
+constraints:
+- fill:
+ - name: '{%set bool1 = bool %}{% if bool1 %}1{% else %}2{% endif %}'
+ type: jinja
+ target:
+ - text: int1
+ - name: '{%set bool1 = bool %}{% if not bool1 %}3{% else %}4{% endif %}'
+ type: jinja
+ target:
+ - text: int2
diff --git a/tests/dictionaries_old/01auto_withoutparam/00-base.xml b/tests/dictionaries_old/01auto_withoutparam/00-base.xml
deleted file mode 100644
index 7c3468376..000000000
--- a/tests/dictionaries_old/01auto_withoutparam/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
-
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/01auto_withoutparam/result/rougail/00-base.yml b/tests/dictionaries_old/01auto_withoutparam/result/rougail/00-base.yml
new file mode 100644
index 000000000..6a7b569db
--- /dev/null
+++ b/tests/dictionaries_old/01auto_withoutparam/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ calc_val() }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01auto_withoutparam/tiramisu/base.py b/tests/dictionaries_old/01auto_withoutparam/tiramisu/base.py
index 434055916..32316eeb7 100644
--- a/tests/dictionaries_old/01auto_withoutparam/tiramisu/base.py
+++ b/tests/dictionaries_old/01auto_withoutparam/tiramisu/base.py
@@ -1,18 +1,60 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params(())), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ calc_val() }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01auto_withoutparam/tiramisu/multi.py b/tests/dictionaries_old/01auto_withoutparam/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01auto_withoutparam/tiramisu/multi.py
rename to tests/dictionaries_old/01auto_withoutparam/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01auto_withoutparam/xml/00-base.xml b/tests/dictionaries_old/01auto_withoutparam/xml/00-base.xml
new file mode 100644
index 000000000..cab468eb7
--- /dev/null
+++ b/tests/dictionaries_old/01auto_withoutparam/xml/00-base.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries_old/01auto_withoutparam/yml/00-base.yml b/tests/dictionaries_old/01auto_withoutparam/yml/00-base.yml
new file mode 100644
index 000000000..40821a3b6
--- /dev/null
+++ b/tests/dictionaries_old/01auto_withoutparam/yml/00-base.yml
@@ -0,0 +1,22 @@
+version: '0.10'
+variables:
+- family:
+ - name: general
+ variables:
+ - variable:
+ - name: mode_conteneur_actif
+ type: string
+ description: No change
+ hidden: true
+ value:
+ - text: non
+ - name: mode_conteneur_actif1
+ type: string
+ description: No change
+ value:
+ - text: non
+constraints:
+- fill:
+ - name: calc_val
+ target:
+ - text: mode_conteneur_actif
diff --git a/tests/dictionaries/01fill_autofreeze/__init__.py b/tests/dictionaries_old/01base_certificate_owner/__init__.py
similarity index 100%
rename from tests/dictionaries/01fill_autofreeze/__init__.py
rename to tests/dictionaries_old/01base_certificate_owner/__init__.py
diff --git a/tests/dictionaries/01base_certificate_owner/makedict/after.json b/tests/dictionaries_old/01base_certificate_owner/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner/makedict/after.json
rename to tests/dictionaries_old/01base_certificate_owner/makedict/after.json
diff --git a/tests/dictionaries/01base_certificate_owner/makedict/base.json b/tests/dictionaries_old/01base_certificate_owner/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner/makedict/base.json
rename to tests/dictionaries_old/01base_certificate_owner/makedict/base.json
diff --git a/tests/dictionaries/01base_certificate_owner/makedict/before.json b/tests/dictionaries_old/01base_certificate_owner/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner/makedict/before.json
rename to tests/dictionaries_old/01base_certificate_owner/makedict/before.json
diff --git a/tests/dictionaries_old/01base_certificate_owner/result/rougail/00-base.yml b/tests/dictionaries_old/01base_certificate_owner/result/rougail/00-base.yml
new file mode 100644
index 000000000..4b7a0ceb7
--- /dev/null
+++ b/tests/dictionaries_old/01base_certificate_owner/result/rougail/00-base.yml
@@ -0,0 +1,4 @@
+server_name:
+ type: domainname
+ default: example.net
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_certificate_owner/result/services/00-base.yml b/tests/dictionaries_old/01base_certificate_owner/result/services/00-base.yml
new file mode 100644
index 000000000..185cefe2d
--- /dev/null
+++ b/tests/dictionaries_old/01base_certificate_owner/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ certificates:
+ certificate:
+ authority: authority
+ owner: example
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_certificate_owner/tiramisu/base.py b/tests/dictionaries_old/01base_certificate_owner/tiramisu/base.py
new file mode 100644
index 000000000..6f8c9c283
--- /dev/null
+++ b/tests/dictionaries_old/01base_certificate_owner/tiramisu/base.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="name", doc="name", default="certificate")
+option_8 = UsernameOption(name="owner", doc="owner", default="example")
+option_9 = SymLinkOption(name="domain", opt=option_2)
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_6 = OptionDescription(name="certificate", doc="certificate", children=[option_7, option_8, option_9, option_10])
+optiondescription_6.impl_set_information('authority', "authority")
+optiondescription_6.impl_set_information('format', "cert_key")
+optiondescription_6.impl_set_information('type', "client")
+optiondescription_5 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_6])
+option_11 = BoolOption(name="activate", doc="activate", default=True)
+option_12 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_4 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_5, option_11, option_12])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/01base_certificate_owner/tiramisu/multi.py b/tests/dictionaries_old/01base_certificate_owner/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner/tiramisu/multi.py
rename to tests/dictionaries_old/01base_certificate_owner/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_certificate_owner/xml/00-base.xml b/tests/dictionaries_old/01base_certificate_owner/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner/xml/00-base.xml
rename to tests/dictionaries_old/01base_certificate_owner/xml/00-base.xml
diff --git a/tests/dictionaries/01base_certificate_owner/yml/00-base.yml b/tests/dictionaries_old/01base_certificate_owner/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner/yml/00-base.yml
rename to tests/dictionaries_old/01base_certificate_owner/yml/00-base.yml
diff --git a/tests/dictionaries/01fill_autosave/__init__.py b/tests/dictionaries_old/01base_certificate_owner_variable/__init__.py
similarity index 100%
rename from tests/dictionaries/01fill_autosave/__init__.py
rename to tests/dictionaries_old/01base_certificate_owner_variable/__init__.py
diff --git a/tests/dictionaries/01base_certificate_owner_variable/makedict/after.json b/tests/dictionaries_old/01base_certificate_owner_variable/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner_variable/makedict/after.json
rename to tests/dictionaries_old/01base_certificate_owner_variable/makedict/after.json
diff --git a/tests/dictionaries/01base_certificate_owner_variable/makedict/base.json b/tests/dictionaries_old/01base_certificate_owner_variable/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner_variable/makedict/base.json
rename to tests/dictionaries_old/01base_certificate_owner_variable/makedict/base.json
diff --git a/tests/dictionaries/01base_certificate_owner_variable/makedict/before.json b/tests/dictionaries_old/01base_certificate_owner_variable/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner_variable/makedict/before.json
rename to tests/dictionaries_old/01base_certificate_owner_variable/makedict/before.json
diff --git a/tests/dictionaries_old/01base_certificate_owner_variable/result/rougail/00-base.yml b/tests/dictionaries_old/01base_certificate_owner_variable/result/rougail/00-base.yml
new file mode 100644
index 000000000..68e2ff806
--- /dev/null
+++ b/tests/dictionaries_old/01base_certificate_owner_variable/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+owner:
+ type: unix_user
+ default: example
+server_name:
+ type: domainname
+ default: example.net
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_certificate_owner_variable/result/services/00-base.yml b/tests/dictionaries_old/01base_certificate_owner_variable/result/services/00-base.yml
new file mode 100644
index 000000000..0b0e158d1
--- /dev/null
+++ b/tests/dictionaries_old/01base_certificate_owner_variable/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ certificates:
+ certificate:
+ authority: authority
+ owner:
+ name: rougail.owner
+ type: variable
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_certificate_owner_variable/tiramisu/base.py b/tests/dictionaries_old/01base_certificate_owner_variable/tiramisu/base.py
new file mode 100644
index 000000000..a8977fd71
--- /dev/null
+++ b/tests/dictionaries_old/01base_certificate_owner_variable/tiramisu/base.py
@@ -0,0 +1,43 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = UsernameOption(name="owner", doc="owner", default="example", properties=frozenset({"mandatory", "normal"}))
+option_3 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
+option_8 = StrOption(name="name", doc="name", default="certificate")
+option_9 = SymLinkOption(name="owner", opt=option_2)
+option_10 = SymLinkOption(name="domain", opt=option_3)
+option_11 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="certificate", doc="certificate", children=[option_8, option_9, option_10, option_11])
+optiondescription_7.impl_set_information('authority', "authority")
+optiondescription_7.impl_set_information('format', "cert_key")
+optiondescription_7.impl_set_information('type', "client")
+optiondescription_6 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_7])
+option_12 = BoolOption(name="activate", doc="activate", default=True)
+option_13 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_12, option_13])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01base_certificate_owner_variable/tiramisu/multi.py b/tests/dictionaries_old/01base_certificate_owner_variable/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner_variable/tiramisu/multi.py
rename to tests/dictionaries_old/01base_certificate_owner_variable/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_certificate_owner_variable/xml/00-base.xml b/tests/dictionaries_old/01base_certificate_owner_variable/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner_variable/xml/00-base.xml
rename to tests/dictionaries_old/01base_certificate_owner_variable/xml/00-base.xml
diff --git a/tests/dictionaries/01base_certificate_owner_variable/yml/00-base.yml b/tests/dictionaries_old/01base_certificate_owner_variable/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_certificate_owner_variable/yml/00-base.yml
rename to tests/dictionaries_old/01base_certificate_owner_variable/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_domainname/00-base.xml b/tests/dictionaries_old/01base_domainname/00-base.xml
deleted file mode 100644
index 1376bc799..000000000
--- a/tests/dictionaries_old/01base_domainname/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- my.domain.name
-
-
-
-
diff --git a/tests/dictionaries_old/01base_domainname/result/rougail/00-base.yml b/tests/dictionaries_old/01base_domainname/result/rougail/00-base.yml
new file mode 100644
index 000000000..2dd36b636
--- /dev/null
+++ b/tests/dictionaries_old/01base_domainname/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ domain:
+ type: domainname
+ description: Description
+ default: my.domain.name
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_domainname/tiramisu/base.py b/tests/dictionaries_old/01base_domainname/tiramisu/base.py
index 1625bc45f..92e48b6f1 100644
--- a/tests/dictionaries_old/01base_domainname/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_domainname/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type='domainname', allow_ip=False, 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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_domainname/tiramisu/multi.py b/tests/dictionaries_old/01base_domainname/tiramisu/multi.py
new file mode 100644
index 000000000..45bebd723
--- /dev/null
+++ b/tests/dictionaries_old/01base_domainname/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01base_domainname/xml/00-base.xml b/tests/dictionaries_old/01base_domainname/xml/00-base.xml
new file mode 100644
index 000000000..0bad0a272
--- /dev/null
+++ b/tests/dictionaries_old/01base_domainname/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ my.domain.name
+
+
+
+
diff --git a/tests/dictionaries/01base_domainname/yml/00-base.yml b/tests/dictionaries_old/01base_domainname/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_domainname/yml/00-base.yml
rename to tests/dictionaries_old/01base_domainname/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_file/00-base.xml b/tests/dictionaries_old/01base_file/00-base.xml
deleted file mode 100644
index 9f2dbf082..000000000
--- a/tests/dictionaries_old/01base_file/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- /etc/file
- /etc/file2
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01base_file/makedict/after.json b/tests/dictionaries_old/01base_file/makedict/after.json
index c8edf346f..c63a8561a 100644
--- a/tests/dictionaries_old/01base_file/makedict/after.json
+++ b/tests/dictionaries_old/01base_file/makedict/after.json
@@ -3,27 +3,35 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.files.file2.name": {
+ "services.test_service.files.file2.name": {
"owner": "default",
"value": "/etc/file2"
},
- "services.test.files.file2.activate": {
+ "services.test_service.files.file2.source": {
+ "owner": "default",
+ "value": "file2"
+ },
+ "services.test_service.files.file2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/01base_file/makedict/base.json b/tests/dictionaries_old/01base_file/makedict/base.json
index c9048468a..3524da356 100644
--- a/tests/dictionaries_old/01base_file/makedict/base.json
+++ b/tests/dictionaries_old/01base_file/makedict/base.json
@@ -1,9 +1,11 @@
{
"rougail.general.mode_conteneur_actif": "non",
- "services.test.files.file.name": "/etc/file",
- "services.test.files.file.activate": true,
- "services.test.files.file2.name": "/etc/file2",
- "services.test.files.file2.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/etc/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": true,
+ "services.test_service.files.file2.name": "/etc/file2",
+ "services.test_service.files.file2.source": "file2",
+ "services.test_service.files.file2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/01base_file/makedict/before.json b/tests/dictionaries_old/01base_file/makedict/before.json
index c8edf346f..c63a8561a 100644
--- a/tests/dictionaries_old/01base_file/makedict/before.json
+++ b/tests/dictionaries_old/01base_file/makedict/before.json
@@ -3,27 +3,35 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.files.file2.name": {
+ "services.test_service.files.file2.name": {
"owner": "default",
"value": "/etc/file2"
},
- "services.test.files.file2.activate": {
+ "services.test_service.files.file2.source": {
+ "owner": "default",
+ "value": "file2"
+ },
+ "services.test_service.files.file2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/01base_file/result/etc/file b/tests/dictionaries_old/01base_file/result/etc/file
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries_old/01base_file/result/etc/file
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries_old/01base_file/result/etc/file2 b/tests/dictionaries_old/01base_file/result/etc/file2
deleted file mode 100644
index 4089fbcce..000000000
--- a/tests/dictionaries_old/01base_file/result/etc/file2
+++ /dev/null
@@ -1,2 +0,0 @@
-non
-non
diff --git a/tests/dictionaries_old/01base_file/result/rougail/00-base.yml b/tests/dictionaries_old/01base_file/result/rougail/00-base.yml
new file mode 100644
index 000000000..6f06c87e2
--- /dev/null
+++ b/tests/dictionaries_old/01base_file/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file/result/services/00-base.yml b/tests/dictionaries_old/01base_file/result/services/00-base.yml
new file mode 100644
index 000000000..2618c05c4
--- /dev/null
+++ b/tests/dictionaries_old/01base_file/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/file: {}
+ /etc/file2:
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/01base_file/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 2dab2179e..000000000
--- a/tests/dictionaries_old/01base_file/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-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_old/01base_file/tiramisu/base.py b/tests/dictionaries_old/01base_file/tiramisu/base.py
index 25ad4894b..43f70c975 100644
--- a/tests/dictionaries_old/01base_file/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_file/tiramisu/base.py
@@ -1,31 +1,44 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
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])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9])
-option_7.impl_set_information('source', "file")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12])
-option_10.impl_set_information('engine', "jinja")
-option_10.impl_set_information('source', "file2")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_10])
-option_13 = BoolOption(name="activate", doc="activate", default=True)
-option_14 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_13, option_14])
-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])
+option_9 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_13 = FilenameOption(name="source", doc="source", default="/etc/file2")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="file2", doc="file2", children=[option_12, option_13, option_14])
+optiondescription_11.impl_set_information('engine', "jinja")
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_15, option_16])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01base_file/tiramisu/multi.py b/tests/dictionaries_old/01base_file/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file/xml/00-base.xml b/tests/dictionaries_old/01base_file/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file/xml/00-base.xml
rename to tests/dictionaries_old/01base_file/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file/yml/00-base.yml b/tests/dictionaries_old/01base_file/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file/yml/00-base.yml
rename to tests/dictionaries_old/01base_file/yml/00-base.yml
diff --git a/tests/dictionaries/01fill_base/__init__.py b/tests/dictionaries_old/01base_file_disabled/__init__.py
similarity index 100%
rename from tests/dictionaries/01fill_base/__init__.py
rename to tests/dictionaries_old/01base_file_disabled/__init__.py
diff --git a/tests/dictionaries/01base_file_disabled/makedict/after.json b/tests/dictionaries_old/01base_file_disabled/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_file_disabled/makedict/after.json
rename to tests/dictionaries_old/01base_file_disabled/makedict/after.json
diff --git a/tests/dictionaries/01base_file_disabled/makedict/base.json b/tests/dictionaries_old/01base_file_disabled/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_file_disabled/makedict/base.json
rename to tests/dictionaries_old/01base_file_disabled/makedict/base.json
diff --git a/tests/dictionaries/01base_file_disabled/makedict/before.json b/tests/dictionaries_old/01base_file_disabled/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_file_disabled/makedict/before.json
rename to tests/dictionaries_old/01base_file_disabled/makedict/before.json
diff --git a/tests/dictionaries_old/01base_file_disabled/result/rougail/00-base.yml b/tests/dictionaries_old/01base_file_disabled/result/rougail/00-base.yml
new file mode 100644
index 000000000..6f06c87e2
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_disabled/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_disabled/result/services/00-base.yml b/tests/dictionaries_old/01base_file_disabled/result/services/00-base.yml
new file mode 100644
index 000000000..1a0c56e41
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_disabled/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /etc/file: {}
+ /etc/file2:
+ engine: jinja
+ /etc/file3:
+ disabled: true
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_disabled/tiramisu/base.py b/tests/dictionaries_old/01base_file_disabled/tiramisu/base.py
new file mode 100644
index 000000000..6f8e3035a
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_disabled/tiramisu/base.py
@@ -0,0 +1,48 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_9 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_13 = FilenameOption(name="source", doc="source", default="/etc/file2")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="file2", doc="file2", children=[option_12, option_13, option_14])
+optiondescription_11.impl_set_information('engine', "jinja")
+option_16 = FilenameOption(name="name", doc="name", default="/etc/file3")
+option_17 = FilenameOption(name="source", doc="source", default="/etc/file3")
+option_18 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_15 = OptionDescription(name="file3", doc="file3", children=[option_16, option_17, option_18])
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11, optiondescription_15])
+option_19 = BoolOption(name="activate", doc="activate", default=True)
+option_20 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_19, option_20])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01base_file_disabled/tiramisu/multi.py b/tests/dictionaries_old/01base_file_disabled/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_disabled/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_disabled/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file/tmpl/file b/tests/dictionaries_old/01base_file_disabled/tmpl/file
similarity index 100%
rename from tests/dictionaries/01base_file/tmpl/file
rename to tests/dictionaries_old/01base_file_disabled/tmpl/file
diff --git a/tests/dictionaries/01base_file/tmpl/file2 b/tests/dictionaries_old/01base_file_disabled/tmpl/file2
similarity index 100%
rename from tests/dictionaries/01base_file/tmpl/file2
rename to tests/dictionaries_old/01base_file_disabled/tmpl/file2
diff --git a/tests/dictionaries/01base_file_disabled/xml/00-base.xml b/tests/dictionaries_old/01base_file_disabled/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_disabled/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_disabled/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_disabled/yml/00-base.yml b/tests/dictionaries_old/01base_file_disabled/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_disabled/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_disabled/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_file_include/00-base.xml b/tests/dictionaries_old/01base_file_include/00-base.xml
deleted file mode 100644
index 9f2dbf082..000000000
--- a/tests/dictionaries_old/01base_file_include/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- /etc/file
- /etc/file2
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01base_file_include/makedict/after.json b/tests/dictionaries_old/01base_file_include/makedict/after.json
index c8edf346f..c63a8561a 100644
--- a/tests/dictionaries_old/01base_file_include/makedict/after.json
+++ b/tests/dictionaries_old/01base_file_include/makedict/after.json
@@ -3,27 +3,35 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.files.file2.name": {
+ "services.test_service.files.file2.name": {
"owner": "default",
"value": "/etc/file2"
},
- "services.test.files.file2.activate": {
+ "services.test_service.files.file2.source": {
+ "owner": "default",
+ "value": "file2"
+ },
+ "services.test_service.files.file2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/01base_file_include/makedict/base.json b/tests/dictionaries_old/01base_file_include/makedict/base.json
index c9048468a..3524da356 100644
--- a/tests/dictionaries_old/01base_file_include/makedict/base.json
+++ b/tests/dictionaries_old/01base_file_include/makedict/base.json
@@ -1,9 +1,11 @@
{
"rougail.general.mode_conteneur_actif": "non",
- "services.test.files.file.name": "/etc/file",
- "services.test.files.file.activate": true,
- "services.test.files.file2.name": "/etc/file2",
- "services.test.files.file2.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/etc/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": true,
+ "services.test_service.files.file2.name": "/etc/file2",
+ "services.test_service.files.file2.source": "file2",
+ "services.test_service.files.file2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/01base_file_include/makedict/before.json b/tests/dictionaries_old/01base_file_include/makedict/before.json
index c8edf346f..c63a8561a 100644
--- a/tests/dictionaries_old/01base_file_include/makedict/before.json
+++ b/tests/dictionaries_old/01base_file_include/makedict/before.json
@@ -3,27 +3,35 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.files.file2.name": {
+ "services.test_service.files.file2.name": {
"owner": "default",
"value": "/etc/file2"
},
- "services.test.files.file2.activate": {
+ "services.test_service.files.file2.source": {
+ "owner": "default",
+ "value": "file2"
+ },
+ "services.test_service.files.file2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/01base_file_include/result/etc/file b/tests/dictionaries_old/01base_file_include/result/etc/file
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries_old/01base_file_include/result/etc/file
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries_old/01base_file_include/result/etc/file2 b/tests/dictionaries_old/01base_file_include/result/etc/file2
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries_old/01base_file_include/result/etc/file2
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries_old/01base_file_include/result/rougail/00-base.yml b/tests/dictionaries_old/01base_file_include/result/rougail/00-base.yml
new file mode 100644
index 000000000..6f06c87e2
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_include/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_include/result/services/00-base.yml b/tests/dictionaries_old/01base_file_include/result/services/00-base.yml
new file mode 100644
index 000000000..2618c05c4
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_include/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/file: {}
+ /etc/file2:
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_include/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/01base_file_include/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 2dab2179e..000000000
--- a/tests/dictionaries_old/01base_file_include/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-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_old/01base_file_include/tiramisu/base.py b/tests/dictionaries_old/01base_file_include/tiramisu/base.py
index 25ad4894b..43f70c975 100644
--- a/tests/dictionaries_old/01base_file_include/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_file_include/tiramisu/base.py
@@ -1,31 +1,44 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
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])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9])
-option_7.impl_set_information('source', "file")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12])
-option_10.impl_set_information('engine', "jinja")
-option_10.impl_set_information('source', "file2")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_10])
-option_13 = BoolOption(name="activate", doc="activate", default=True)
-option_14 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_13, option_14])
-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])
+option_9 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_13 = FilenameOption(name="source", doc="source", default="/etc/file2")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="file2", doc="file2", children=[option_12, option_13, option_14])
+optiondescription_11.impl_set_information('engine', "jinja")
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_15, option_16])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01base_file_include/tiramisu/multi.py b/tests/dictionaries_old/01base_file_include/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_include/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_include/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file_include/xml/00-base.xml b/tests/dictionaries_old/01base_file_include/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_include/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_include/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_include/yml/00-base.yml b/tests/dictionaries_old/01base_file_include/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_include/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_include/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_file_include_content/00-base.xml b/tests/dictionaries_old/01base_file_include_content/00-base.xml
deleted file mode 100644
index ef7b6bd58..000000000
--- a/tests/dictionaries_old/01base_file_include_content/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- /etc/file
- /etc/file2
- /etc/dir/incfile
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01base_file_include_content/makedict/after.json b/tests/dictionaries_old/01base_file_include_content/makedict/after.json
index 0f9e1770d..e3d3f7cd8 100644
--- a/tests/dictionaries_old/01base_file_include_content/makedict/after.json
+++ b/tests/dictionaries_old/01base_file_include_content/makedict/after.json
@@ -3,35 +3,47 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.files.file2.name": {
+ "services.test_service.files.file2.name": {
"owner": "default",
"value": "/etc/file2"
},
- "services.test.files.file2.activate": {
+ "services.test_service.files.file2.source": {
+ "owner": "default",
+ "value": "file2"
+ },
+ "services.test_service.files.file2.activate": {
"owner": "default",
"value": true
},
- "services.test.files.incfile.name": {
+ "services.test_service.files.incfile.name": {
"owner": "default",
"value": "/etc/dir/incfile"
},
- "services.test.files.incfile.activate": {
+ "services.test_service.files.incfile.source": {
+ "owner": "default",
+ "value": "incfile"
+ },
+ "services.test_service.files.incfile.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/01base_file_include_content/makedict/base.json b/tests/dictionaries_old/01base_file_include_content/makedict/base.json
index 68409c43a..c4573ab6b 100644
--- a/tests/dictionaries_old/01base_file_include_content/makedict/base.json
+++ b/tests/dictionaries_old/01base_file_include_content/makedict/base.json
@@ -1,11 +1,14 @@
{
"rougail.general.mode_conteneur_actif": "non",
- "services.test.files.file.name": "/etc/file",
- "services.test.files.file.activate": true,
- "services.test.files.file2.name": "/etc/file2",
- "services.test.files.file2.activate": true,
- "services.test.files.incfile.name": "/etc/dir/incfile",
- "services.test.files.incfile.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/etc/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": true,
+ "services.test_service.files.file2.name": "/etc/file2",
+ "services.test_service.files.file2.source": "file2",
+ "services.test_service.files.file2.activate": true,
+ "services.test_service.files.incfile.name": "/etc/dir/incfile",
+ "services.test_service.files.incfile.source": "incfile",
+ "services.test_service.files.incfile.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/01base_file_include_content/makedict/before.json b/tests/dictionaries_old/01base_file_include_content/makedict/before.json
index 0f9e1770d..e3d3f7cd8 100644
--- a/tests/dictionaries_old/01base_file_include_content/makedict/before.json
+++ b/tests/dictionaries_old/01base_file_include_content/makedict/before.json
@@ -3,35 +3,47 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.files.file2.name": {
+ "services.test_service.files.file2.name": {
"owner": "default",
"value": "/etc/file2"
},
- "services.test.files.file2.activate": {
+ "services.test_service.files.file2.source": {
+ "owner": "default",
+ "value": "file2"
+ },
+ "services.test_service.files.file2.activate": {
"owner": "default",
"value": true
},
- "services.test.files.incfile.name": {
+ "services.test_service.files.incfile.name": {
"owner": "default",
"value": "/etc/dir/incfile"
},
- "services.test.files.incfile.activate": {
+ "services.test_service.files.incfile.source": {
+ "owner": "default",
+ "value": "incfile"
+ },
+ "services.test_service.files.incfile.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/01base_file_include_content/result/etc/dir/incfile b/tests/dictionaries_old/01base_file_include_content/result/etc/dir/incfile
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries_old/01base_file_include_content/result/etc/dir/incfile
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries_old/01base_file_include_content/result/etc/file b/tests/dictionaries_old/01base_file_include_content/result/etc/file
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries_old/01base_file_include_content/result/etc/file
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries_old/01base_file_include_content/result/etc/file2 b/tests/dictionaries_old/01base_file_include_content/result/etc/file2
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries_old/01base_file_include_content/result/etc/file2
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries_old/01base_file_include_content/result/rougail/00-base.yml b/tests/dictionaries_old/01base_file_include_content/result/rougail/00-base.yml
new file mode 100644
index 000000000..6f06c87e2
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_include_content/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_include_content/result/services/00-base.yml b/tests/dictionaries_old/01base_file_include_content/result/services/00-base.yml
new file mode 100644
index 000000000..363958155
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_include_content/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /etc/file: {}
+ /etc/file2:
+ engine: jinja
+ /etc/dir/incfile:
+ included: content
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_include_content/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/01base_file_include_content/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 2dab2179e..000000000
--- a/tests/dictionaries_old/01base_file_include_content/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-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_old/01base_file_include_content/tiramisu/base.py b/tests/dictionaries_old/01base_file_include_content/tiramisu/base.py
index fed176886..6034587e1 100644
--- a/tests/dictionaries_old/01base_file_include_content/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_file_include_content/tiramisu/base.py
@@ -1,36 +1,49 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
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])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9])
-option_7.impl_set_information('source', "file")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12])
-option_10.impl_set_information('engine', "jinja")
-option_10.impl_set_information('source', "file2")
-option_14 = FilenameOption(name="name", doc="name", default="/etc/dir/incfile")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = OptionDescription(name="incfile", doc="incfile", children=[option_14, option_15])
-option_13.impl_set_information('included', "content")
-option_13.impl_set_information('source', "incfile")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_10, option_13])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_17 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_16, option_17])
-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])
+option_9 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_13 = FilenameOption(name="source", doc="source", default="/etc/file2")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="file2", doc="file2", children=[option_12, option_13, option_14])
+optiondescription_11.impl_set_information('engine', "jinja")
+option_16 = FilenameOption(name="name", doc="name", default="/etc/dir/incfile")
+option_17 = FilenameOption(name="source", doc="source", default="/etc/dir/incfile")
+option_18 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_15 = OptionDescription(name="incfile", doc="incfile", children=[option_16, option_17, option_18])
+optiondescription_15.impl_set_information('included', "content")
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11, optiondescription_15])
+option_19 = BoolOption(name="activate", doc="activate", default=True)
+option_20 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_19, option_20])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01base_file_include_content/tiramisu/multi.py b/tests/dictionaries_old/01base_file_include_content/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_include_content/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_include_content/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file_include_content/xml/00-base.xml b/tests/dictionaries_old/01base_file_include_content/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_include_content/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_include_content/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_include_content/yml/00-base.yml b/tests/dictionaries_old/01base_file_include_content/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_include_content/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_include_content/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_file_include_name/00-base.xml b/tests/dictionaries_old/01base_file_include_name/00-base.xml
deleted file mode 100644
index 70a5a3f74..000000000
--- a/tests/dictionaries_old/01base_file_include_name/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- /etc/file
- /etc/file2
- /etc/dir/incfile
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01base_file_include_name/makedict/after.json b/tests/dictionaries_old/01base_file_include_name/makedict/after.json
index 0f9e1770d..e3d3f7cd8 100644
--- a/tests/dictionaries_old/01base_file_include_name/makedict/after.json
+++ b/tests/dictionaries_old/01base_file_include_name/makedict/after.json
@@ -3,35 +3,47 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.files.file2.name": {
+ "services.test_service.files.file2.name": {
"owner": "default",
"value": "/etc/file2"
},
- "services.test.files.file2.activate": {
+ "services.test_service.files.file2.source": {
+ "owner": "default",
+ "value": "file2"
+ },
+ "services.test_service.files.file2.activate": {
"owner": "default",
"value": true
},
- "services.test.files.incfile.name": {
+ "services.test_service.files.incfile.name": {
"owner": "default",
"value": "/etc/dir/incfile"
},
- "services.test.files.incfile.activate": {
+ "services.test_service.files.incfile.source": {
+ "owner": "default",
+ "value": "incfile"
+ },
+ "services.test_service.files.incfile.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/01base_file_include_name/makedict/base.json b/tests/dictionaries_old/01base_file_include_name/makedict/base.json
index 68409c43a..c4573ab6b 100644
--- a/tests/dictionaries_old/01base_file_include_name/makedict/base.json
+++ b/tests/dictionaries_old/01base_file_include_name/makedict/base.json
@@ -1,11 +1,14 @@
{
"rougail.general.mode_conteneur_actif": "non",
- "services.test.files.file.name": "/etc/file",
- "services.test.files.file.activate": true,
- "services.test.files.file2.name": "/etc/file2",
- "services.test.files.file2.activate": true,
- "services.test.files.incfile.name": "/etc/dir/incfile",
- "services.test.files.incfile.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/etc/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": true,
+ "services.test_service.files.file2.name": "/etc/file2",
+ "services.test_service.files.file2.source": "file2",
+ "services.test_service.files.file2.activate": true,
+ "services.test_service.files.incfile.name": "/etc/dir/incfile",
+ "services.test_service.files.incfile.source": "incfile",
+ "services.test_service.files.incfile.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/01base_file_include_name/makedict/before.json b/tests/dictionaries_old/01base_file_include_name/makedict/before.json
index 0f9e1770d..e3d3f7cd8 100644
--- a/tests/dictionaries_old/01base_file_include_name/makedict/before.json
+++ b/tests/dictionaries_old/01base_file_include_name/makedict/before.json
@@ -3,35 +3,47 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.files.file2.name": {
+ "services.test_service.files.file2.name": {
"owner": "default",
"value": "/etc/file2"
},
- "services.test.files.file2.activate": {
+ "services.test_service.files.file2.source": {
+ "owner": "default",
+ "value": "file2"
+ },
+ "services.test_service.files.file2.activate": {
"owner": "default",
"value": true
},
- "services.test.files.incfile.name": {
+ "services.test_service.files.incfile.name": {
"owner": "default",
"value": "/etc/dir/incfile"
},
- "services.test.files.incfile.activate": {
+ "services.test_service.files.incfile.source": {
+ "owner": "default",
+ "value": "incfile"
+ },
+ "services.test_service.files.incfile.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/01base_file_include_name/result/etc/dir/incfile b/tests/dictionaries_old/01base_file_include_name/result/etc/dir/incfile
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries_old/01base_file_include_name/result/etc/dir/incfile
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries_old/01base_file_include_name/result/etc/file b/tests/dictionaries_old/01base_file_include_name/result/etc/file
deleted file mode 100644
index 1ac4955d8..000000000
--- a/tests/dictionaries_old/01base_file_include_name/result/etc/file
+++ /dev/null
@@ -1 +0,0 @@
-include /etc/dir/incfile
diff --git a/tests/dictionaries_old/01base_file_include_name/result/etc/file2 b/tests/dictionaries_old/01base_file_include_name/result/etc/file2
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries_old/01base_file_include_name/result/etc/file2
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries_old/01base_file_include_name/result/rougail/00-base.yml b/tests/dictionaries_old/01base_file_include_name/result/rougail/00-base.yml
new file mode 100644
index 000000000..6f06c87e2
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_include_name/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_include_name/result/services/00-base.yml b/tests/dictionaries_old/01base_file_include_name/result/services/00-base.yml
new file mode 100644
index 000000000..50189df9c
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_include_name/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /etc/file: {}
+ /etc/file2:
+ engine: jinja
+ /etc/dir/incfile:
+ included: name
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_include_name/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/01base_file_include_name/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 245eb456b..000000000
--- a/tests/dictionaries_old/01base_file_include_name/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-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_old/01base_file_include_name/tiramisu/base.py b/tests/dictionaries_old/01base_file_include_name/tiramisu/base.py
index 9acc98c40..8f8957318 100644
--- a/tests/dictionaries_old/01base_file_include_name/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_file_include_name/tiramisu/base.py
@@ -1,36 +1,49 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
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])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9])
-option_7.impl_set_information('source', "file")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12])
-option_10.impl_set_information('engine', "jinja")
-option_10.impl_set_information('source', "file2")
-option_14 = FilenameOption(name="name", doc="name", default="/etc/dir/incfile")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = OptionDescription(name="incfile", doc="incfile", children=[option_14, option_15])
-option_13.impl_set_information('included', "name")
-option_13.impl_set_information('source', "incfile")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_10, option_13])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_17 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_16, option_17])
-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])
+option_9 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_13 = FilenameOption(name="source", doc="source", default="/etc/file2")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="file2", doc="file2", children=[option_12, option_13, option_14])
+optiondescription_11.impl_set_information('engine', "jinja")
+option_16 = FilenameOption(name="name", doc="name", default="/etc/dir/incfile")
+option_17 = FilenameOption(name="source", doc="source", default="/etc/dir/incfile")
+option_18 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_15 = OptionDescription(name="incfile", doc="incfile", children=[option_16, option_17, option_18])
+optiondescription_15.impl_set_information('included', "name")
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11, optiondescription_15])
+option_19 = BoolOption(name="activate", doc="activate", default=True)
+option_20 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_19, option_20])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01base_file_include_name/tiramisu/multi.py b/tests/dictionaries_old/01base_file_include_name/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_include_name/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_include_name/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file_include_name/xml/00-base.xml b/tests/dictionaries_old/01base_file_include_name/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_include_name/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_include_name/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_include_name/yml/00-base.yml b/tests/dictionaries_old/01base_file_include_name/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_include_name/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_include_name/yml/00-base.yml
diff --git a/tests/dictionaries/01fill_mandatory/__init__.py b/tests/dictionaries_old/01base_file_mode/__init__.py
similarity index 100%
rename from tests/dictionaries/01fill_mandatory/__init__.py
rename to tests/dictionaries_old/01base_file_mode/__init__.py
diff --git a/tests/dictionaries/01base_file_mode/makedict/after.json b/tests/dictionaries_old/01base_file_mode/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_file_mode/makedict/after.json
rename to tests/dictionaries_old/01base_file_mode/makedict/after.json
diff --git a/tests/dictionaries/01base_file_mode/makedict/base.json b/tests/dictionaries_old/01base_file_mode/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_file_mode/makedict/base.json
rename to tests/dictionaries_old/01base_file_mode/makedict/base.json
diff --git a/tests/dictionaries/01base_file_mode/makedict/before.json b/tests/dictionaries_old/01base_file_mode/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_file_mode/makedict/before.json
rename to tests/dictionaries_old/01base_file_mode/makedict/before.json
diff --git a/tests/dictionaries_old/01base_file_mode/result/services/00-base.yml b/tests/dictionaries_old/01base_file_mode/result/services/00-base.yml
new file mode 100644
index 000000000..c4f595db4
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_mode/result/services/00-base.yml
@@ -0,0 +1,5 @@
+test.service:
+ files:
+ /etc/file:
+ mode: 755
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_mode/tiramisu/base.py b/tests/dictionaries_old/01base_file_mode/tiramisu/base.py
new file mode 100644
index 000000000..083b14471
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_mode/tiramisu/base.py
@@ -0,0 +1,37 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_5 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_6 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_7 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_4 = OptionDescription(name="file", doc="file", children=[option_5, option_6, option_7])
+optiondescription_4.impl_set_information('mode', 755)
+optiondescription_3 = OptionDescription(name="files", doc="files", children=[optiondescription_4])
+option_8 = BoolOption(name="activate", doc="activate", default=True)
+option_9 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_2 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_3, option_8, option_9])
+optiondescription_2.impl_set_information('type', "service")
+optiondescription_1 = OptionDescription(name="services", doc="services", children=[optiondescription_2], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_file_mode/tiramisu/multi.py b/tests/dictionaries_old/01base_file_mode/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_mode/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_mode/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file_mode/result/etc/file b/tests/dictionaries_old/01base_file_mode/tmpl/file
similarity index 100%
rename from tests/dictionaries/01base_file_mode/result/etc/file
rename to tests/dictionaries_old/01base_file_mode/tmpl/file
diff --git a/tests/dictionaries/01base_file_mode/xml/00-base.xml b/tests/dictionaries_old/01base_file_mode/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_mode/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_mode/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_mode/yml/00-base.yml b/tests/dictionaries_old/01base_file_mode/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_mode/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_mode/yml/00-base.yml
diff --git a/tests/dictionaries/01fill_number/__init__.py b/tests/dictionaries_old/01base_file_mode2/__init__.py
similarity index 100%
rename from tests/dictionaries/01fill_number/__init__.py
rename to tests/dictionaries_old/01base_file_mode2/__init__.py
diff --git a/tests/dictionaries/01base_file_mode2/makedict/after.json b/tests/dictionaries_old/01base_file_mode2/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_file_mode2/makedict/after.json
rename to tests/dictionaries_old/01base_file_mode2/makedict/after.json
diff --git a/tests/dictionaries/01base_file_mode2/makedict/base.json b/tests/dictionaries_old/01base_file_mode2/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_file_mode2/makedict/base.json
rename to tests/dictionaries_old/01base_file_mode2/makedict/base.json
diff --git a/tests/dictionaries/01base_file_mode2/makedict/before.json b/tests/dictionaries_old/01base_file_mode2/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_file_mode2/makedict/before.json
rename to tests/dictionaries_old/01base_file_mode2/makedict/before.json
diff --git a/tests/dictionaries_old/01base_file_mode2/result/services/00-base.yml b/tests/dictionaries_old/01base_file_mode2/result/services/00-base.yml
new file mode 100644
index 000000000..813215ef7
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_mode2/result/services/00-base.yml
@@ -0,0 +1,5 @@
+test.service:
+ files:
+ /etc/file:
+ mode: 1755
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_mode2/tiramisu/base.py b/tests/dictionaries_old/01base_file_mode2/tiramisu/base.py
new file mode 100644
index 000000000..ca5effc37
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_mode2/tiramisu/base.py
@@ -0,0 +1,37 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_5 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_6 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_7 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_4 = OptionDescription(name="file", doc="file", children=[option_5, option_6, option_7])
+optiondescription_4.impl_set_information('mode', 1755)
+optiondescription_3 = OptionDescription(name="files", doc="files", children=[optiondescription_4])
+option_8 = BoolOption(name="activate", doc="activate", default=True)
+option_9 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_2 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_3, option_8, option_9])
+optiondescription_2.impl_set_information('type', "service")
+optiondescription_1 = OptionDescription(name="services", doc="services", children=[optiondescription_2], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_file_mode2/tiramisu/multi.py b/tests/dictionaries_old/01base_file_mode2/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_mode2/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_mode2/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file_mode/tmpl/file b/tests/dictionaries_old/01base_file_mode2/tmpl/file
similarity index 100%
rename from tests/dictionaries/01base_file_mode/tmpl/file
rename to tests/dictionaries_old/01base_file_mode2/tmpl/file
diff --git a/tests/dictionaries/01base_file_mode2/xml/00-base.xml b/tests/dictionaries_old/01base_file_mode2/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_mode2/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_mode2/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_mode2/yml/00-base.yml b/tests/dictionaries_old/01base_file_mode2/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_mode2/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_mode2/yml/00-base.yml
diff --git a/tests/dictionaries/01fill_only_optional/__init__.py b/tests/dictionaries_old/01base_file_owner/__init__.py
similarity index 100%
rename from tests/dictionaries/01fill_only_optional/__init__.py
rename to tests/dictionaries_old/01base_file_owner/__init__.py
diff --git a/tests/dictionaries/01base_file_owner/makedict/after.json b/tests/dictionaries_old/01base_file_owner/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_file_owner/makedict/after.json
rename to tests/dictionaries_old/01base_file_owner/makedict/after.json
diff --git a/tests/dictionaries/01base_file_owner/makedict/base.json b/tests/dictionaries_old/01base_file_owner/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_file_owner/makedict/base.json
rename to tests/dictionaries_old/01base_file_owner/makedict/base.json
diff --git a/tests/dictionaries/01base_file_owner/makedict/before.json b/tests/dictionaries_old/01base_file_owner/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_file_owner/makedict/before.json
rename to tests/dictionaries_old/01base_file_owner/makedict/before.json
diff --git a/tests/dictionaries/01base_file_owner/no_base b/tests/dictionaries_old/01base_file_owner/no_base
similarity index 100%
rename from tests/dictionaries/01base_file_owner/no_base
rename to tests/dictionaries_old/01base_file_owner/no_base
diff --git a/tests/dictionaries_old/01base_file_owner/result/rougail/00-base.yml b/tests/dictionaries_old/01base_file_owner/result/rougail/00-base.yml
new file mode 100644
index 000000000..6f06c87e2
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_owner/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_owner/result/services/00-base.yml b/tests/dictionaries_old/01base_file_owner/result/services/00-base.yml
new file mode 100644
index 000000000..cfe723bef
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_owner/result/services/00-base.yml
@@ -0,0 +1,10 @@
+test.service:
+ files:
+ /etc/file:
+ owner: nobody
+ group: nobody
+ /etc/file2:
+ owner: nobody
+ group: nobody
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_owner/tiramisu/base.py b/tests/dictionaries_old/01base_file_owner/tiramisu/base.py
new file mode 100644
index 000000000..79f68867f
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_owner/tiramisu/base.py
@@ -0,0 +1,48 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_9 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_10 = UsernameOption(name="owner", doc="owner", default="nobody")
+option_11 = UsernameOption(name="group", doc="group", default="nobody")
+option_12 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10, option_11, option_12])
+option_14 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_15 = FilenameOption(name="source", doc="source", default="/etc/file2")
+option_16 = UsernameOption(name="owner", doc="owner", default="nobody")
+option_17 = UsernameOption(name="group", doc="group", default="nobody")
+option_18 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_13 = OptionDescription(name="file2", doc="file2", children=[option_14, option_15, option_16, option_17, option_18])
+optiondescription_13.impl_set_information('engine', "jinja")
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_13])
+option_19 = BoolOption(name="activate", doc="activate", default=True)
+option_20 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_19, option_20])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01base_file_owner/tiramisu/multi.py b/tests/dictionaries_old/01base_file_owner/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_owner/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_owner/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file_disabled/tmpl/file b/tests/dictionaries_old/01base_file_owner/tmpl/file
similarity index 100%
rename from tests/dictionaries/01base_file_disabled/tmpl/file
rename to tests/dictionaries_old/01base_file_owner/tmpl/file
diff --git a/tests/dictionaries/01base_file_disabled/tmpl/file2 b/tests/dictionaries_old/01base_file_owner/tmpl/file2
similarity index 100%
rename from tests/dictionaries/01base_file_disabled/tmpl/file2
rename to tests/dictionaries_old/01base_file_owner/tmpl/file2
diff --git a/tests/dictionaries/01base_file_owner/xml/00-base.xml b/tests/dictionaries_old/01base_file_owner/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_owner/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_owner/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_owner/yml/00-base.yml b/tests/dictionaries_old/01base_file_owner/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_owner/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_owner/yml/00-base.yml
diff --git a/tests/dictionaries/01fill_optional/__init__.py b/tests/dictionaries_old/01base_file_owner_variable/__init__.py
similarity index 100%
rename from tests/dictionaries/01fill_optional/__init__.py
rename to tests/dictionaries_old/01base_file_owner_variable/__init__.py
diff --git a/tests/dictionaries/01base_file_owner_variable/makedict/after.json b/tests/dictionaries_old/01base_file_owner_variable/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_file_owner_variable/makedict/after.json
rename to tests/dictionaries_old/01base_file_owner_variable/makedict/after.json
diff --git a/tests/dictionaries/01base_file_owner_variable/makedict/base.json b/tests/dictionaries_old/01base_file_owner_variable/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_file_owner_variable/makedict/base.json
rename to tests/dictionaries_old/01base_file_owner_variable/makedict/base.json
diff --git a/tests/dictionaries/01base_file_owner_variable/makedict/before.json b/tests/dictionaries_old/01base_file_owner_variable/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_file_owner_variable/makedict/before.json
rename to tests/dictionaries_old/01base_file_owner_variable/makedict/before.json
diff --git a/tests/dictionaries/01base_file_owner_variable/no_base b/tests/dictionaries_old/01base_file_owner_variable/no_base
similarity index 100%
rename from tests/dictionaries/01base_file_owner_variable/no_base
rename to tests/dictionaries_old/01base_file_owner_variable/no_base
diff --git a/tests/dictionaries_old/01base_file_owner_variable/result/rougail/00-base.yml b/tests/dictionaries_old/01base_file_owner_variable/result/rougail/00-base.yml
new file mode 100644
index 000000000..0b6263999
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_owner_variable/result/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+ owner:
+ type: unix_user
+ default: nobody
+ group:
+ type: unix_user
+ default: nobody
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_owner_variable/result/services/00-base.yml b/tests/dictionaries_old/01base_file_owner_variable/result/services/00-base.yml
new file mode 100644
index 000000000..9361c0441
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_owner_variable/result/services/00-base.yml
@@ -0,0 +1,18 @@
+test.service:
+ files:
+ /etc/file:
+ owner:
+ name: rougail.general.owner
+ type: variable
+ group:
+ name: rougail.general.group
+ type: variable
+ /etc/file2:
+ owner:
+ name: rougail.general.owner
+ type: variable
+ group:
+ name: rougail.general.group
+ type: variable
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_owner_variable/tiramisu/base.py b/tests/dictionaries_old/01base_file_owner_variable/tiramisu/base.py
new file mode 100644
index 000000000..e19d29101
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_owner_variable/tiramisu/base.py
@@ -0,0 +1,50 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = UsernameOption(name="owner", doc="owner", default="nobody", properties=frozenset({"mandatory", "normal"}))
+option_5 = UsernameOption(name="group", doc="group", default="nobody", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_11 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_12 = SymLinkOption(name="owner", opt=option_4)
+option_13 = SymLinkOption(name="group", opt=option_5)
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14])
+option_16 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_17 = FilenameOption(name="source", doc="source", default="/etc/file2")
+option_18 = SymLinkOption(name="owner", opt=option_4)
+option_19 = SymLinkOption(name="group", opt=option_5)
+option_20 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_15 = OptionDescription(name="file2", doc="file2", children=[option_16, option_17, option_18, option_19, option_20])
+optiondescription_15.impl_set_information('engine', "jinja")
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9, optiondescription_15])
+option_21 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_21, option_22])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/01base_file_owner_variable/tiramisu/multi.py b/tests/dictionaries_old/01base_file_owner_variable/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_owner_variable/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_owner_variable/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file_owner/tmpl/file b/tests/dictionaries_old/01base_file_owner_variable/tmpl/file
similarity index 100%
rename from tests/dictionaries/01base_file_owner/tmpl/file
rename to tests/dictionaries_old/01base_file_owner_variable/tmpl/file
diff --git a/tests/dictionaries/01base_file_owner/tmpl/file2 b/tests/dictionaries_old/01base_file_owner_variable/tmpl/file2
similarity index 100%
rename from tests/dictionaries/01base_file_owner/tmpl/file2
rename to tests/dictionaries_old/01base_file_owner_variable/tmpl/file2
diff --git a/tests/dictionaries/01base_file_owner_variable/xml/00-base.xml b/tests/dictionaries_old/01base_file_owner_variable/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_owner_variable/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_owner_variable/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_owner_variable/yml/00-base.yml b/tests/dictionaries_old/01base_file_owner_variable/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_owner_variable/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_owner_variable/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_file_patch/00-base.xml b/tests/dictionaries_old/01base_file_patch/00-base.xml
deleted file mode 100644
index 9f2dbf082..000000000
--- a/tests/dictionaries_old/01base_file_patch/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- /etc/file
- /etc/file2
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01base_file_patch/makedict/after.json b/tests/dictionaries_old/01base_file_patch/makedict/after.json
index c8edf346f..c63a8561a 100644
--- a/tests/dictionaries_old/01base_file_patch/makedict/after.json
+++ b/tests/dictionaries_old/01base_file_patch/makedict/after.json
@@ -3,27 +3,35 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.files.file2.name": {
+ "services.test_service.files.file2.name": {
"owner": "default",
"value": "/etc/file2"
},
- "services.test.files.file2.activate": {
+ "services.test_service.files.file2.source": {
+ "owner": "default",
+ "value": "file2"
+ },
+ "services.test_service.files.file2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/01base_file_patch/makedict/base.json b/tests/dictionaries_old/01base_file_patch/makedict/base.json
index c9048468a..3524da356 100644
--- a/tests/dictionaries_old/01base_file_patch/makedict/base.json
+++ b/tests/dictionaries_old/01base_file_patch/makedict/base.json
@@ -1,9 +1,11 @@
{
"rougail.general.mode_conteneur_actif": "non",
- "services.test.files.file.name": "/etc/file",
- "services.test.files.file.activate": true,
- "services.test.files.file2.name": "/etc/file2",
- "services.test.files.file2.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/etc/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": true,
+ "services.test_service.files.file2.name": "/etc/file2",
+ "services.test_service.files.file2.source": "file2",
+ "services.test_service.files.file2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/01base_file_patch/makedict/before.json b/tests/dictionaries_old/01base_file_patch/makedict/before.json
index c8edf346f..c63a8561a 100644
--- a/tests/dictionaries_old/01base_file_patch/makedict/before.json
+++ b/tests/dictionaries_old/01base_file_patch/makedict/before.json
@@ -3,27 +3,35 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.files.file2.name": {
+ "services.test_service.files.file2.name": {
"owner": "default",
"value": "/etc/file2"
},
- "services.test.files.file2.activate": {
+ "services.test_service.files.file2.source": {
+ "owner": "default",
+ "value": "file2"
+ },
+ "services.test_service.files.file2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/01base_file_patch/result/etc/file b/tests/dictionaries_old/01base_file_patch/result/etc/file
deleted file mode 100644
index 893adcd31..000000000
--- a/tests/dictionaries_old/01base_file_patch/result/etc/file
+++ /dev/null
@@ -1 +0,0 @@
-patched
diff --git a/tests/dictionaries_old/01base_file_patch/result/etc/file2 b/tests/dictionaries_old/01base_file_patch/result/etc/file2
deleted file mode 100644
index 893adcd31..000000000
--- a/tests/dictionaries_old/01base_file_patch/result/etc/file2
+++ /dev/null
@@ -1 +0,0 @@
-patched
diff --git a/tests/dictionaries_old/01base_file_patch/result/rougail/00-base.yml b/tests/dictionaries_old/01base_file_patch/result/rougail/00-base.yml
new file mode 100644
index 000000000..6f06c87e2
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_patch/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_patch/result/services/00-base.yml b/tests/dictionaries_old/01base_file_patch/result/services/00-base.yml
new file mode 100644
index 000000000..2618c05c4
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_patch/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/file: {}
+ /etc/file2:
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_patch/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/01base_file_patch/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 2dab2179e..000000000
--- a/tests/dictionaries_old/01base_file_patch/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-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_old/01base_file_patch/tiramisu/base.py b/tests/dictionaries_old/01base_file_patch/tiramisu/base.py
index 25ad4894b..43f70c975 100644
--- a/tests/dictionaries_old/01base_file_patch/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_file_patch/tiramisu/base.py
@@ -1,31 +1,44 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
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])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9])
-option_7.impl_set_information('source', "file")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = OptionDescription(name="file2", doc="file2", children=[option_11, option_12])
-option_10.impl_set_information('engine', "jinja")
-option_10.impl_set_information('source', "file2")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_10])
-option_13 = BoolOption(name="activate", doc="activate", default=True)
-option_14 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_13, option_14])
-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])
+option_9 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_13 = FilenameOption(name="source", doc="source", default="/etc/file2")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="file2", doc="file2", children=[option_12, option_13, option_14])
+optiondescription_11.impl_set_information('engine', "jinja")
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_15, option_16])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01base_file_patch/tiramisu/multi.py b/tests/dictionaries_old/01base_file_patch/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_patch/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_patch/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file_patch/xml/00-base.xml b/tests/dictionaries_old/01base_file_patch/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_patch/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_patch/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_patch/yml/00-base.yml b/tests/dictionaries_old/01base_file_patch/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_patch/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_patch/yml/00-base.yml
diff --git a/tests/dictionaries/01fill_quote/__init__.py b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/__init__.py
similarity index 100%
rename from tests/dictionaries/01fill_quote/__init__.py
rename to tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/__init__.py
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/file_tmpfiles_delete_before_create b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/file_tmpfiles_delete_before_create
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_delete_before_create/file_tmpfiles_delete_before_create
rename to tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/file_tmpfiles_delete_before_create
diff --git a/tests/dictionaries/01base_file/makedict/after.json b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_file/makedict/after.json
rename to tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/makedict/after.json
diff --git a/tests/dictionaries/01base_file/makedict/base.json b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_file/makedict/base.json
rename to tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/makedict/base.json
diff --git a/tests/dictionaries/01base_file/makedict/before.json b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_file/makedict/before.json
rename to tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/makedict/before.json
diff --git a/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/result/rougail/00-base.yml b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/result/rougail/00-base.yml
new file mode 100644
index 000000000..6f06c87e2
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/result/services/00-base.yml b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/result/services/00-base.yml
new file mode 100644
index 000000000..2618c05c4
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/file: {}
+ /etc/file2:
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/tiramisu/base.py b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/tiramisu/base.py
new file mode 100644
index 000000000..43f70c975
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/tiramisu/base.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_9 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_13 = FilenameOption(name="source", doc="source", default="/etc/file2")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="file2", doc="file2", children=[option_12, option_13, option_14])
+optiondescription_11.impl_set_information('engine', "jinja")
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_15, option_16])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/tiramisu/multi.py b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_delete_before_create/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file_owner_variable/tmpl/file b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/tmpl/file
similarity index 100%
rename from tests/dictionaries/01base_file_owner_variable/tmpl/file
rename to tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/tmpl/file
diff --git a/tests/dictionaries/01base_file_owner_variable/tmpl/file2 b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/tmpl/file2
similarity index 100%
rename from tests/dictionaries/01base_file_owner_variable/tmpl/file2
rename to tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/tmpl/file2
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/xml/00-base.xml b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_delete_before_create/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/yml/00-base.yml b/tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_delete_before_create/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_tmpfiles_delete_before_create/yml/00-base.yml
diff --git a/tests/dictionaries/01fill_target_optional/__init__.py b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/__init__.py
similarity index 100%
rename from tests/dictionaries/01fill_target_optional/__init__.py
rename to tests/dictionaries_old/01base_file_tmpfiles_factory_dir/__init__.py
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/file_tmpfiles_factory_dir b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/file_tmpfiles_factory_dir
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_factory_dir/file_tmpfiles_factory_dir
rename to tests/dictionaries_old/01base_file_tmpfiles_factory_dir/file_tmpfiles_factory_dir
diff --git a/tests/dictionaries/01base_file_include/makedict/after.json b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_file_include/makedict/after.json
rename to tests/dictionaries_old/01base_file_tmpfiles_factory_dir/makedict/after.json
diff --git a/tests/dictionaries/01base_file_include/makedict/base.json b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_file_include/makedict/base.json
rename to tests/dictionaries_old/01base_file_tmpfiles_factory_dir/makedict/base.json
diff --git a/tests/dictionaries/01base_file_include/makedict/before.json b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_file_include/makedict/before.json
rename to tests/dictionaries_old/01base_file_tmpfiles_factory_dir/makedict/before.json
diff --git a/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/result/rougail/00-base.yml b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/result/rougail/00-base.yml
new file mode 100644
index 000000000..6f06c87e2
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/result/services/00-base.yml b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/result/services/00-base.yml
new file mode 100644
index 000000000..2618c05c4
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/file: {}
+ /etc/file2:
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/tiramisu/base.py b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/tiramisu/base.py
new file mode 100644
index 000000000..43f70c975
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/tiramisu/base.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_9 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_13 = FilenameOption(name="source", doc="source", default="/etc/file2")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="file2", doc="file2", children=[option_12, option_13, option_14])
+optiondescription_11.impl_set_information('engine', "jinja")
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_15, option_16])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/tiramisu/multi.py b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_factory_dir/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_tmpfiles_factory_dir/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/tmpl/file b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/tmpl/file
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_delete_before_create/tmpl/file
rename to tests/dictionaries_old/01base_file_tmpfiles_factory_dir/tmpl/file
diff --git a/tests/dictionaries/01base_file_tmpfiles_delete_before_create/tmpl/file2 b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/tmpl/file2
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_delete_before_create/tmpl/file2
rename to tests/dictionaries_old/01base_file_tmpfiles_factory_dir/tmpl/file2
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/xml/00-base.xml b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_factory_dir/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_tmpfiles_factory_dir/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/yml/00-base.yml b/tests/dictionaries_old/01base_file_tmpfiles_factory_dir/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_factory_dir/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_tmpfiles_factory_dir/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_file_utfchar/00-base.xml b/tests/dictionaries_old/01base_file_utfchar/00-base.xml
deleted file mode 100644
index 9d943bdbc..000000000
--- a/tests/dictionaries_old/01base_file_utfchar/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- /etc/systemd-makefs@dev-disk-by\x2dpartlabel
- /etc/systemd-makefs@dev-disk-by\x2dpartlabel2
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01base_file_utfchar/makedict/after.json b/tests/dictionaries_old/01base_file_utfchar/makedict/after.json
index 443ae7426..752041c16 100644
--- a/tests/dictionaries_old/01base_file_utfchar/makedict/after.json
+++ b/tests/dictionaries_old/01base_file_utfchar/makedict/after.json
@@ -3,27 +3,35 @@
"owner": "default",
"value": "non"
},
- "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.name": {
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.name": {
"owner": "default",
"value": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel"
},
- "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.activate": {
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.source": {
+ "owner": "default",
+ "value": "systemd-makefs@dev-disk-by\\x2dpartlabel"
+ },
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.activate": {
"owner": "default",
"value": true
},
- "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.name": {
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.name": {
"owner": "default",
"value": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2"
},
- "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.activate": {
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.source": {
+ "owner": "default",
+ "value": "systemd-makefs@dev-disk-by\\x2dpartlabel2"
+ },
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/01base_file_utfchar/makedict/base.json b/tests/dictionaries_old/01base_file_utfchar/makedict/base.json
index 2ae7cd2f7..f07f3ac16 100644
--- a/tests/dictionaries_old/01base_file_utfchar/makedict/base.json
+++ b/tests/dictionaries_old/01base_file_utfchar/makedict/base.json
@@ -1,9 +1,11 @@
{
"rougail.general.mode_conteneur_actif": "non",
- "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.activate": true,
- "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.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.name": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel",
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.source": "systemd-makefs@dev-disk-by\\x2dpartlabel",
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.activate": true,
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.name": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2",
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.source": "systemd-makefs@dev-disk-by\\x2dpartlabel2",
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/01base_file_utfchar/makedict/before.json b/tests/dictionaries_old/01base_file_utfchar/makedict/before.json
index 443ae7426..752041c16 100644
--- a/tests/dictionaries_old/01base_file_utfchar/makedict/before.json
+++ b/tests/dictionaries_old/01base_file_utfchar/makedict/before.json
@@ -3,27 +3,35 @@
"owner": "default",
"value": "non"
},
- "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.name": {
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.name": {
"owner": "default",
"value": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel"
},
- "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.activate": {
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.source": {
+ "owner": "default",
+ "value": "systemd-makefs@dev-disk-by\\x2dpartlabel"
+ },
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel.activate": {
"owner": "default",
"value": true
},
- "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.name": {
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.name": {
"owner": "default",
"value": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2"
},
- "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.activate": {
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.source": {
+ "owner": "default",
+ "value": "systemd-makefs@dev-disk-by\\x2dpartlabel2"
+ },
+ "services.test_service.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git "a/tests/dictionaries_old/01base_file_utfchar/result/etc/systemd-makefs@dev-disk-by\\x2dpartlabel" "b/tests/dictionaries_old/01base_file_utfchar/result/etc/systemd-makefs@dev-disk-by\\x2dpartlabel"
deleted file mode 100644
index d907505b5..000000000
--- "a/tests/dictionaries_old/01base_file_utfchar/result/etc/systemd-makefs@dev-disk-by\\x2dpartlabel"
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git "a/tests/dictionaries_old/01base_file_utfchar/result/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2" "b/tests/dictionaries_old/01base_file_utfchar/result/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2"
deleted file mode 100644
index d907505b5..000000000
--- "a/tests/dictionaries_old/01base_file_utfchar/result/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2"
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries_old/01base_file_utfchar/result/rougail/00-base.yml b/tests/dictionaries_old/01base_file_utfchar/result/rougail/00-base.yml
new file mode 100644
index 000000000..6f06c87e2
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_utfchar/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_utfchar/result/services/00-base.yml b/tests/dictionaries_old/01base_file_utfchar/result/services/00-base.yml
new file mode 100644
index 000000000..3b7573b55
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_utfchar/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/systemd-makefs@dev-disk-by\x2dpartlabel: {}
+ /etc/systemd-makefs@dev-disk-by\x2dpartlabel2:
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_utfchar/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/01base_file_utfchar/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 23f97d816..000000000
--- a/tests/dictionaries_old/01base_file_utfchar/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-C /etc/systemd-makefs@dev-disk-by\x2dpartlabel 0644 root root - /usr/local/lib/etc/systemd-makefs@dev-disk-by\x2dpartlabel
-z /etc/systemd-makefs@dev-disk-by\x2dpartlabel - - - - -
-C /etc/systemd-makefs@dev-disk-by\x2dpartlabel2 0644 root root - /usr/local/lib/etc/systemd-makefs@dev-disk-by\x2dpartlabel2
-z /etc/systemd-makefs@dev-disk-by\x2dpartlabel2 - - - - -
diff --git a/tests/dictionaries_old/01base_file_utfchar/tiramisu/base.py b/tests/dictionaries_old/01base_file_utfchar/tiramisu/base.py
index c671d23cf..6e7a711c9 100644
--- a/tests/dictionaries_old/01base_file_utfchar/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_file_utfchar/tiramisu/base.py
@@ -1,31 +1,44 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
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])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/etc/systemd-makefs@dev-disk-by\\x2dpartlabel")
-option_9 = 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_7.impl_set_information('source', "systemd-makefs@dev-disk-by\\x2dpartlabel")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2")
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = OptionDescription(name="systemd_makefs@dev_disk_by\\x2dpartlabel2", doc="systemd-makefs@dev-disk-by\\x2dpartlabel2", children=[option_11, option_12])
-option_10.impl_set_information('engine', "jinja")
-option_10.impl_set_information('source', "systemd-makefs@dev-disk-by\\x2dpartlabel2")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_10])
-option_13 = BoolOption(name="activate", doc="activate", default=True)
-option_14 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_13, option_14])
-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])
+option_9 = FilenameOption(name="source", doc="source", default="/etc/systemd-makefs@dev-disk-by\\x2dpartlabel")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="systemd_makefs@dev_disk_by\\x2dpartlabel", doc="systemd_makefs@dev_disk_by\\x2dpartlabel", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2")
+option_13 = FilenameOption(name="source", doc="source", default="/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="systemd_makefs@dev_disk_by\\x2dpartlabel2", doc="systemd_makefs@dev_disk_by\\x2dpartlabel2", children=[option_12, option_13, option_14])
+optiondescription_11.impl_set_information('engine', "jinja")
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_15, option_16])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/01base_file_utfchar/tiramisu/multi.py b/tests/dictionaries_old/01base_file_utfchar/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_utfchar/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_utfchar/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file_utfchar/xml/00-base.xml b/tests/dictionaries_old/01base_file_utfchar/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_utfchar/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_utfchar/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_utfchar/yml/00-base.yml b/tests/dictionaries_old/01base_file_utfchar/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_utfchar/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_utfchar/yml/00-base.yml
diff --git a/tests/dictionaries/01hidden_if_in_autofreeze/__init__.py b/tests/dictionaries_old/01base_file_var_source/__init__.py
similarity index 100%
rename from tests/dictionaries/01hidden_if_in_autofreeze/__init__.py
rename to tests/dictionaries_old/01base_file_var_source/__init__.py
diff --git a/tests/dictionaries/01base_file_var_source/makedict/after.json b/tests/dictionaries_old/01base_file_var_source/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_file_var_source/makedict/after.json
rename to tests/dictionaries_old/01base_file_var_source/makedict/after.json
diff --git a/tests/dictionaries/01base_file_var_source/makedict/base.json b/tests/dictionaries_old/01base_file_var_source/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_file_var_source/makedict/base.json
rename to tests/dictionaries_old/01base_file_var_source/makedict/base.json
diff --git a/tests/dictionaries/01base_file_var_source/makedict/before.json b/tests/dictionaries_old/01base_file_var_source/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_file_var_source/makedict/before.json
rename to tests/dictionaries_old/01base_file_var_source/makedict/before.json
diff --git a/tests/dictionaries_old/01base_file_var_source/result/rougail/00-base.yml b/tests/dictionaries_old/01base_file_var_source/result/rougail/00-base.yml
new file mode 100644
index 000000000..9d8f6ecf8
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_var_source/result/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ source_var:
+ type: string
+ description: Description
+ default: file
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_var_source/result/services/00-base.yml b/tests/dictionaries_old/01base_file_var_source/result/services/00-base.yml
new file mode 100644
index 000000000..3edbf08d8
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_var_source/result/services/00-base.yml
@@ -0,0 +1,7 @@
+test.service:
+ files:
+ /etc/file:
+ source:
+ name: rougail.general.source_var
+ type: variable
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_file_var_source/tiramisu/base.py b/tests/dictionaries_old/01base_file_var_source/tiramisu/base.py
new file mode 100644
index 000000000..d99f5cb80
--- /dev/null
+++ b/tests/dictionaries_old/01base_file_var_source/tiramisu/base.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="source_var", doc="Description", default="file", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_9 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_10 = SymLinkOption(name="source", opt=option_3)
+option_11 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_8 = OptionDescription(name="rougail_general_source_var", doc="rougail_general_source_var", children=[option_9, option_10, option_11])
+optiondescription_7 = OptionDescription(name="files", doc="files", children=[optiondescription_8])
+option_12 = BoolOption(name="activate", doc="activate", default=True)
+option_13 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_6 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_7, option_12, option_13])
+optiondescription_6.impl_set_information('type', "service")
+optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/01base_file_var_source/tiramisu/multi.py b/tests/dictionaries_old/01base_file_var_source/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_file_var_source/tiramisu/multi.py
rename to tests/dictionaries_old/01base_file_var_source/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_file_tmpfiles_factory_dir/tmpl/file b/tests/dictionaries_old/01base_file_var_source/tmpl/file
similarity index 100%
rename from tests/dictionaries/01base_file_tmpfiles_factory_dir/tmpl/file
rename to tests/dictionaries_old/01base_file_var_source/tmpl/file
diff --git a/tests/dictionaries/01base_file_var_source/xml/00-base.xml b/tests/dictionaries_old/01base_file_var_source/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_file_var_source/xml/00-base.xml
rename to tests/dictionaries_old/01base_file_var_source/xml/00-base.xml
diff --git a/tests/dictionaries/01base_file_var_source/yml/00-base.yml b/tests/dictionaries_old/01base_file_var_source/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_file_var_source/yml/00-base.yml
rename to tests/dictionaries_old/01base_file_var_source/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_float/00-base.xml b/tests/dictionaries_old/01base_float/00-base.xml
deleted file mode 100644
index e775553e7..000000000
--- a/tests/dictionaries_old/01base_float/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- 0.527
-
-
- 0.527
-
-
-
-
diff --git a/tests/dictionaries_old/01base_float/result/rougail/00-base.yml b/tests/dictionaries_old/01base_float/result/rougail/00-base.yml
new file mode 100644
index 000000000..aa39818c0
--- /dev/null
+++ b/tests/dictionaries_old/01base_float/result/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ float:
+ type: float
+ description: Description
+ default: 0.527
+ float_multi:
+ type: float
+ description: Description
+ multi: true
+ default:
+ - 0.527
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_float/tiramisu/base.py b/tests/dictionaries_old/01base_float/tiramisu/base.py
index 0d3409738..1179d223c 100644
--- a/tests/dictionaries_old/01base_float/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_float/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "normal"}))
option_4 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_float/tiramisu/multi.py b/tests/dictionaries_old/01base_float/tiramisu/multi.py
new file mode 100644
index 000000000..6d87b4433
--- /dev/null
+++ b/tests/dictionaries_old/01base_float/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "normal"}))
+option_3 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "normal"}))
+option_6 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/01base_float/xml/00-base.xml b/tests/dictionaries_old/01base_float/xml/00-base.xml
new file mode 100644
index 000000000..955470484
--- /dev/null
+++ b/tests/dictionaries_old/01base_float/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ 0.527
+
+
+ 0.527
+
+
+
+
diff --git a/tests/dictionaries/01base_float/yml/00-base.yml b/tests/dictionaries_old/01base_float/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_float/yml/00-base.yml
rename to tests/dictionaries_old/01base_float/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_help_quote/00-base.xml b/tests/dictionaries_old/01base_help_quote/00-base.xml
deleted file mode 100644
index 43c3fdae1..000000000
--- a/tests/dictionaries_old/01base_help_quote/00-base.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/01base_help_quote/result/rougail/00-base.yml b/tests/dictionaries_old/01base_help_quote/result/rougail/00-base.yml
new file mode 100644
index 000000000..11a0cbd92
--- /dev/null
+++ b/tests/dictionaries_old/01base_help_quote/result/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ help: message with '
+ mode_conteneur_actif1:
+ type: string
+ description: Redefine description
+ help: message with "
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_help_quote/tiramisu/base.py b/tests/dictionaries_old/01base_help_quote/tiramisu/base.py
index 36f00605d..932fe99be 100644
--- a/tests/dictionaries_old/01base_help_quote/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_help_quote/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"normal"}))
option_3.impl_set_information('help', "message with '")
option_4 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"normal"}))
option_4.impl_set_information('help', "message with \"")
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_help_quote/tiramisu/multi.py b/tests/dictionaries_old/01base_help_quote/tiramisu/multi.py
new file mode 100644
index 000000000..1ca1981b0
--- /dev/null
+++ b/tests/dictionaries_old/01base_help_quote/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"normal"}))
+option_2.impl_set_information('help', "message with '")
+option_3 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"normal"}))
+option_3.impl_set_information('help', "message with \"")
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"normal"}))
+option_5.impl_set_information('help', "message with '")
+option_6 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"normal"}))
+option_6.impl_set_information('help', "message with \"")
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/01base_help_quote/xml/00-base.xml b/tests/dictionaries_old/01base_help_quote/xml/00-base.xml
new file mode 100644
index 000000000..dacddfcf5
--- /dev/null
+++ b/tests/dictionaries_old/01base_help_quote/xml/00-base.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/01base_help_quote/yml/00-base.yml b/tests/dictionaries_old/01base_help_quote/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_help_quote/yml/00-base.yml
rename to tests/dictionaries_old/01base_help_quote/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_multi/00-base.xml b/tests/dictionaries_old/01base_multi/00-base.xml
deleted file mode 100644
index 67ec9b798..000000000
--- a/tests/dictionaries_old/01base_multi/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01base_multi/result/rougail/00-base.yml b/tests/dictionaries_old/01base_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..13a77c762
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ multi: true
+ default:
+ - non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_multi/tiramisu/base.py b/tests/dictionaries_old/01base_multi/tiramisu/base.py
index 79e3d3436..73ee68ca0 100644
--- a/tests/dictionaries_old/01base_multi/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_multi/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_multi/tiramisu/multi.py b/tests/dictionaries_old/01base_multi/tiramisu/multi.py
new file mode 100644
index 000000000..4b92ec1d2
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01base_multi/xml/00-base.xml b/tests/dictionaries_old/01base_multi/xml/00-base.xml
new file mode 100644
index 000000000..c6c0f6075
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/01base_multi/yml/00-base.yml b/tests/dictionaries_old/01base_multi/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_multi/yml/00-base.yml
rename to tests/dictionaries_old/01base_multi/yml/00-base.yml
diff --git a/tests/dictionaries/02autosave_hidden_frozenifin/__init__.py b/tests/dictionaries_old/01base_multi_notuniq/__init__.py
similarity index 100%
rename from tests/dictionaries/02autosave_hidden_frozenifin/__init__.py
rename to tests/dictionaries_old/01base_multi_notuniq/__init__.py
diff --git a/tests/dictionaries_old/01base_multi_notuniq/makedict/after.json b/tests/dictionaries_old/01base_multi_notuniq/makedict/after.json
new file mode 100644
index 000000000..cfec4b1fc
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_notuniq/makedict/after.json
@@ -0,0 +1,8 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": [
+ "non"
+ ]
+ }
+}
diff --git a/tests/dictionaries_old/01base_multi_notuniq/makedict/base.json b/tests/dictionaries_old/01base_multi_notuniq/makedict/base.json
new file mode 100644
index 000000000..feedadc62
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_notuniq/makedict/base.json
@@ -0,0 +1,5 @@
+{
+ "rougail.general.mode_conteneur_actif": [
+ "non"
+ ]
+}
diff --git a/tests/dictionaries_old/01base_multi_notuniq/makedict/before.json b/tests/dictionaries_old/01base_multi_notuniq/makedict/before.json
new file mode 100644
index 000000000..cfec4b1fc
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_notuniq/makedict/before.json
@@ -0,0 +1,8 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": [
+ "non"
+ ]
+ }
+}
diff --git a/tests/dictionaries_old/01base_multi_notuniq/result/rougail/00-base.yml b/tests/dictionaries_old/01base_multi_notuniq/result/rougail/00-base.yml
new file mode 100644
index 000000000..c86588600
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_notuniq/result/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ multi: true
+ unique: false
+ default:
+ - non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_multi_notuniq/tiramisu/base.py b/tests/dictionaries_old/01base_multi_notuniq/tiramisu/base.py
new file mode 100644
index 000000000..056d7966b
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_notuniq/tiramisu/base.py
@@ -0,0 +1,29 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notunique"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_multi_notuniq/tiramisu/multi.py b/tests/dictionaries_old/01base_multi_notuniq/tiramisu/multi.py
new file mode 100644
index 000000000..98b0fa649
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_notuniq/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notunique"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "notunique"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01base_multi_notuniq/xml/00-base.xml b/tests/dictionaries_old/01base_multi_notuniq/xml/00-base.xml
new file mode 100644
index 000000000..357f16593
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_notuniq/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/01base_multi_notuniq/yml/00-base.yml b/tests/dictionaries_old/01base_multi_notuniq/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_multi_notuniq/yml/00-base.yml
rename to tests/dictionaries_old/01base_multi_notuniq/yml/00-base.yml
diff --git a/tests/dictionaries/02fill_multi_calc_val/__init__.py b/tests/dictionaries_old/01base_multi_uniq/__init__.py
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val/__init__.py
rename to tests/dictionaries_old/01base_multi_uniq/__init__.py
diff --git a/tests/dictionaries_old/01base_multi_uniq/makedict/after.json b/tests/dictionaries_old/01base_multi_uniq/makedict/after.json
new file mode 100644
index 000000000..cfec4b1fc
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_uniq/makedict/after.json
@@ -0,0 +1,8 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": [
+ "non"
+ ]
+ }
+}
diff --git a/tests/dictionaries_old/01base_multi_uniq/makedict/base.json b/tests/dictionaries_old/01base_multi_uniq/makedict/base.json
new file mode 100644
index 000000000..feedadc62
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_uniq/makedict/base.json
@@ -0,0 +1,5 @@
+{
+ "rougail.general.mode_conteneur_actif": [
+ "non"
+ ]
+}
diff --git a/tests/dictionaries_old/01base_multi_uniq/makedict/before.json b/tests/dictionaries_old/01base_multi_uniq/makedict/before.json
new file mode 100644
index 000000000..cfec4b1fc
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_uniq/makedict/before.json
@@ -0,0 +1,8 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": [
+ "non"
+ ]
+ }
+}
diff --git a/tests/dictionaries_old/01base_multi_uniq/result/rougail/00-base.yml b/tests/dictionaries_old/01base_multi_uniq/result/rougail/00-base.yml
new file mode 100644
index 000000000..a40a48624
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_uniq/result/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ multi: true
+ unique: true
+ default:
+ - non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_multi_uniq/tiramisu/base.py b/tests/dictionaries_old/01base_multi_uniq/tiramisu/base.py
new file mode 100644
index 000000000..7230b7375
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_uniq/tiramisu/base.py
@@ -0,0 +1,29 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "unique"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_multi_uniq/tiramisu/multi.py b/tests/dictionaries_old/01base_multi_uniq/tiramisu/multi.py
new file mode 100644
index 000000000..7984527c6
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_uniq/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "unique"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", "unique"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01base_multi_uniq/xml/00-base.xml b/tests/dictionaries_old/01base_multi_uniq/xml/00-base.xml
new file mode 100644
index 000000000..baded8a93
--- /dev/null
+++ b/tests/dictionaries_old/01base_multi_uniq/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/01base_multi_uniq/yml/00-base.yml b/tests/dictionaries_old/01base_multi_uniq/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_multi_uniq/yml/00-base.yml
rename to tests/dictionaries_old/01base_multi_uniq/yml/00-base.yml
diff --git a/tests/dictionaries/02fill_multi_calc_val_multi/__init__.py b/tests/dictionaries_old/01base_provider/__init__.py
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val_multi/__init__.py
rename to tests/dictionaries_old/01base_provider/__init__.py
diff --git a/tests/dictionaries/01base_provider/makedict/after.json b/tests/dictionaries_old/01base_provider/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_provider/makedict/after.json
rename to tests/dictionaries_old/01base_provider/makedict/after.json
diff --git a/tests/dictionaries/01base_provider/makedict/base.json b/tests/dictionaries_old/01base_provider/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_provider/makedict/base.json
rename to tests/dictionaries_old/01base_provider/makedict/base.json
diff --git a/tests/dictionaries/01base_provider/makedict/before.json b/tests/dictionaries_old/01base_provider/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_provider/makedict/before.json
rename to tests/dictionaries_old/01base_provider/makedict/before.json
diff --git a/tests/dictionaries_old/01base_provider/result/rougail/00-base.yml b/tests/dictionaries_old/01base_provider/result/rougail/00-base.yml
new file mode 100644
index 000000000..404c4d132
--- /dev/null
+++ b/tests/dictionaries_old/01base_provider/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ float:
+ type: float
+ description: Description
+ provider: float
+ default: 0.527
+ float_multi:
+ type: float
+ description: Description
+ multi: true
+ default:
+ - 0.527
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_provider/tiramisu/base.py b/tests/dictionaries_old/01base_provider/tiramisu/base.py
new file mode 100644
index 000000000..1179d223c
--- /dev/null
+++ b/tests/dictionaries_old/01base_provider/tiramisu/base.py
@@ -0,0 +1,30 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "normal"}))
+option_4 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_provider/tiramisu/multi.py b/tests/dictionaries_old/01base_provider/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_provider/tiramisu/multi.py
rename to tests/dictionaries_old/01base_provider/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_provider/xml/00-base.xml b/tests/dictionaries_old/01base_provider/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_provider/xml/00-base.xml
rename to tests/dictionaries_old/01base_provider/xml/00-base.xml
diff --git a/tests/dictionaries/01base_provider/yml/00-base.yml b/tests/dictionaries_old/01base_provider/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_provider/yml/00-base.yml
rename to tests/dictionaries_old/01base_provider/yml/00-base.yml
diff --git a/tests/dictionaries/10base_certificate_list/__init__.py b/tests/dictionaries_old/01base_provider_extra/__init__.py
similarity index 100%
rename from tests/dictionaries/10base_certificate_list/__init__.py
rename to tests/dictionaries_old/01base_provider_extra/__init__.py
diff --git a/tests/dictionaries/01base_provider_extra/makedict/after.json b/tests/dictionaries_old/01base_provider_extra/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_provider_extra/makedict/after.json
rename to tests/dictionaries_old/01base_provider_extra/makedict/after.json
diff --git a/tests/dictionaries/01base_provider_extra/makedict/base.json b/tests/dictionaries_old/01base_provider_extra/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_provider_extra/makedict/base.json
rename to tests/dictionaries_old/01base_provider_extra/makedict/base.json
diff --git a/tests/dictionaries/01base_provider_extra/makedict/before.json b/tests/dictionaries_old/01base_provider_extra/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_provider_extra/makedict/before.json
rename to tests/dictionaries_old/01base_provider_extra/makedict/before.json
diff --git a/tests/dictionaries_old/01base_provider_extra/result/extra/00-base.yml b/tests/dictionaries_old/01base_provider_extra/result/extra/00-base.yml
new file mode 100644
index 000000000..b3747cb48
--- /dev/null
+++ b/tests/dictionaries_old/01base_provider_extra/result/extra/00-base.yml
@@ -0,0 +1,5 @@
+example:
+ description:
+ type: string
+ provider: example
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_provider_extra/result/rougail/00-base.yml b/tests/dictionaries_old/01base_provider_extra/result/rougail/00-base.yml
new file mode 100644
index 000000000..4432e8bf9
--- /dev/null
+++ b/tests/dictionaries_old/01base_provider_extra/result/rougail/00-base.yml
@@ -0,0 +1,4 @@
+float:
+ type: float
+ description: Description
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_provider_extra/tiramisu/base.py b/tests/dictionaries_old/01base_provider_extra/tiramisu/base.py
new file mode 100644
index 000000000..2164ae76c
--- /dev/null
+++ b/tests/dictionaries_old/01base_provider_extra/tiramisu/base.py
@@ -0,0 +1,31 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = FloatOption(name="float", doc="Description", properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_5 = StrOption(name="description", doc="description", properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="example", doc="example", children=[option_5], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/01base_provider_extra/tiramisu/multi.py b/tests/dictionaries_old/01base_provider_extra/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_provider_extra/tiramisu/multi.py
rename to tests/dictionaries_old/01base_provider_extra/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_provider_extra/xml/00-base.xml b/tests/dictionaries_old/01base_provider_extra/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_provider_extra/xml/00-base.xml
rename to tests/dictionaries_old/01base_provider_extra/xml/00-base.xml
diff --git a/tests/dictionaries/01base_provider_extra/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/01base_provider_extra/xml/extra_dirs/extra/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_provider_extra/xml/extra_dirs/extra/00-base.xml
rename to tests/dictionaries_old/01base_provider_extra/xml/extra_dirs/extra/00-base.xml
diff --git a/tests/dictionaries/01base_provider_extra/yml/00-base.yml b/tests/dictionaries_old/01base_provider_extra/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_provider_extra/yml/00-base.yml
rename to tests/dictionaries_old/01base_provider_extra/yml/00-base.yml
diff --git a/tests/dictionaries/01base_provider_extra/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/01base_provider_extra/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_provider_extra/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/01base_provider_extra/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries/10base_certificate_list_disabled/__init__.py b/tests/dictionaries_old/01base_provider_hidden/__init__.py
similarity index 100%
rename from tests/dictionaries/10base_certificate_list_disabled/__init__.py
rename to tests/dictionaries_old/01base_provider_hidden/__init__.py
diff --git a/tests/dictionaries/01base_provider_hidden/makedict/after.json b/tests/dictionaries_old/01base_provider_hidden/makedict/after.json
similarity index 100%
rename from tests/dictionaries/01base_provider_hidden/makedict/after.json
rename to tests/dictionaries_old/01base_provider_hidden/makedict/after.json
diff --git a/tests/dictionaries/01base_provider_hidden/makedict/base.json b/tests/dictionaries_old/01base_provider_hidden/makedict/base.json
similarity index 100%
rename from tests/dictionaries/01base_provider_hidden/makedict/base.json
rename to tests/dictionaries_old/01base_provider_hidden/makedict/base.json
diff --git a/tests/dictionaries/01base_provider_hidden/makedict/before.json b/tests/dictionaries_old/01base_provider_hidden/makedict/before.json
similarity index 100%
rename from tests/dictionaries/01base_provider_hidden/makedict/before.json
rename to tests/dictionaries_old/01base_provider_hidden/makedict/before.json
diff --git a/tests/dictionaries_old/01base_provider_hidden/result/rougail/00-base.yml b/tests/dictionaries_old/01base_provider_hidden/result/rougail/00-base.yml
new file mode 100644
index 000000000..0601452d9
--- /dev/null
+++ b/tests/dictionaries_old/01base_provider_hidden/result/rougail/00-base.yml
@@ -0,0 +1,14 @@
+general:
+ float:
+ type: float
+ description: Description
+ provider: float
+ hidden: true
+ default: 0.527
+ float_multi:
+ type: float
+ description: Description
+ multi: true
+ default:
+ - 0.527
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_provider_hidden/tiramisu/base.py b/tests/dictionaries_old/01base_provider_hidden/tiramisu/base.py
new file mode 100644
index 000000000..1d450b0bd
--- /dev/null
+++ b/tests/dictionaries_old/01base_provider_hidden/tiramisu/base.py
@@ -0,0 +1,30 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"hidden", "mandatory", "normal"}))
+option_4 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01base_provider_hidden/tiramisu/multi.py b/tests/dictionaries_old/01base_provider_hidden/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01base_provider_hidden/tiramisu/multi.py
rename to tests/dictionaries_old/01base_provider_hidden/tiramisu/multi.py
diff --git a/tests/dictionaries/01base_provider_hidden/xml/00-base.xml b/tests/dictionaries_old/01base_provider_hidden/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01base_provider_hidden/xml/00-base.xml
rename to tests/dictionaries_old/01base_provider_hidden/xml/00-base.xml
diff --git a/tests/dictionaries/01base_provider_hidden/yml/00-base.yml b/tests/dictionaries_old/01base_provider_hidden/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_provider_hidden/yml/00-base.yml
rename to tests/dictionaries_old/01base_provider_hidden/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_value_doublequote/00-base.xml b/tests/dictionaries_old/01base_value_doublequote/00-base.xml
deleted file mode 100644
index df1c54f3a..000000000
--- a/tests/dictionaries_old/01base_value_doublequote/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- quote"
-
-
-
-
diff --git a/tests/dictionaries_old/01base_value_doublequote/result/rougail/00-base.yml b/tests/dictionaries_old/01base_value_doublequote/result/rougail/00-base.yml
new file mode 100644
index 000000000..ee8d8e599
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_doublequote/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: quote"
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_value_doublequote/tiramisu/base.py b/tests/dictionaries_old/01base_value_doublequote/tiramisu/base.py
index fcaa24d15..7adc0220a 100644
--- a/tests/dictionaries_old/01base_value_doublequote/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_value_doublequote/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_value_doublequote/tiramisu/multi.py b/tests/dictionaries_old/01base_value_doublequote/tiramisu/multi.py
new file mode 100644
index 000000000..4f866735a
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_doublequote/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01base_value_doublequote/xml/00-base.xml b/tests/dictionaries_old/01base_value_doublequote/xml/00-base.xml
new file mode 100644
index 000000000..f9e317735
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_doublequote/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ quote"
+
+
+
+
diff --git a/tests/dictionaries/01base_value_doublequote/yml/00-base.yml b/tests/dictionaries_old/01base_value_doublequote/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_value_doublequote/yml/00-base.yml
rename to tests/dictionaries_old/01base_value_doublequote/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_value_doublequote2/00-base.xml b/tests/dictionaries_old/01base_value_doublequote2/00-base.xml
deleted file mode 100644
index 8f2faae96..000000000
--- a/tests/dictionaries_old/01base_value_doublequote2/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- quote'"
-
-
-
-
diff --git a/tests/dictionaries_old/01base_value_doublequote2/result/rougail/00-base.yml b/tests/dictionaries_old/01base_value_doublequote2/result/rougail/00-base.yml
new file mode 100644
index 000000000..3071f1a08
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_doublequote2/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: quote'"
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_value_doublequote2/tiramisu/base.py b/tests/dictionaries_old/01base_value_doublequote2/tiramisu/base.py
index a04bf77d7..209370a5e 100644
--- a/tests/dictionaries_old/01base_value_doublequote2/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_value_doublequote2/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_value_doublequote2/tiramisu/multi.py b/tests/dictionaries_old/01base_value_doublequote2/tiramisu/multi.py
new file mode 100644
index 000000000..5fefb986c
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_doublequote2/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01base_value_doublequote2/xml/00-base.xml b/tests/dictionaries_old/01base_value_doublequote2/xml/00-base.xml
new file mode 100644
index 000000000..dc3f93934
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_doublequote2/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ quote'"
+
+
+
+
diff --git a/tests/dictionaries/01base_value_doublequote2/yml/00-base.yml b/tests/dictionaries_old/01base_value_doublequote2/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_value_doublequote2/yml/00-base.yml
rename to tests/dictionaries_old/01base_value_doublequote2/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_value_doublequote3/00-base.xml b/tests/dictionaries_old/01base_value_doublequote3/00-base.xml
deleted file mode 100644
index 97070d9f4..000000000
--- a/tests/dictionaries_old/01base_value_doublequote3/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- quote\"\'
-
-
-
-
diff --git a/tests/dictionaries_old/01base_value_doublequote3/result/rougail/00-base.yml b/tests/dictionaries_old/01base_value_doublequote3/result/rougail/00-base.yml
new file mode 100644
index 000000000..7df61e911
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_doublequote3/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: quote\"\'
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_value_doublequote3/tiramisu/base.py b/tests/dictionaries_old/01base_value_doublequote3/tiramisu/base.py
index ba928d14d..93653a537 100644
--- a/tests/dictionaries_old/01base_value_doublequote3/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_value_doublequote3/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\\\"\\'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_value_doublequote3/tiramisu/multi.py b/tests/dictionaries_old/01base_value_doublequote3/tiramisu/multi.py
new file mode 100644
index 000000000..97fd85c73
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_doublequote3/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\\\"\\'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\\\"\\'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01base_value_doublequote3/xml/00-base.xml b/tests/dictionaries_old/01base_value_doublequote3/xml/00-base.xml
new file mode 100644
index 000000000..fb2e6e0bd
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_doublequote3/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ quote\"\'
+
+
+
+
diff --git a/tests/dictionaries/01base_value_doublequote3/yml/00-base.yml b/tests/dictionaries_old/01base_value_doublequote3/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_value_doublequote3/yml/00-base.yml
rename to tests/dictionaries_old/01base_value_doublequote3/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_value_multi_doublequote/00-base.xml b/tests/dictionaries_old/01base_value_multi_doublequote/00-base.xml
deleted file mode 100644
index 6f8b0f9ba..000000000
--- a/tests/dictionaries_old/01base_value_multi_doublequote/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- quote"
-
-
-
-
diff --git a/tests/dictionaries_old/01base_value_multi_doublequote/result/rougail/00-base.yml b/tests/dictionaries_old/01base_value_multi_doublequote/result/rougail/00-base.yml
new file mode 100644
index 000000000..ca0dc5158
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_multi_doublequote/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ multi: true
+ default:
+ - quote"
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_value_multi_doublequote/tiramisu/base.py b/tests/dictionaries_old/01base_value_multi_doublequote/tiramisu/base.py
index cb6728980..db7e5397a 100644
--- a/tests/dictionaries_old/01base_value_multi_doublequote/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_value_multi_doublequote/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote"'], default_multi="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_value_multi_doublequote/tiramisu/multi.py b/tests/dictionaries_old/01base_value_multi_doublequote/tiramisu/multi.py
new file mode 100644
index 000000000..2f6fb0031
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_multi_doublequote/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote"'], default_multi="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote"'], default_multi="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01base_value_multi_doublequote/xml/00-base.xml b/tests/dictionaries_old/01base_value_multi_doublequote/xml/00-base.xml
new file mode 100644
index 000000000..da0614e0f
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_multi_doublequote/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ quote"
+
+
+
+
diff --git a/tests/dictionaries/01base_value_multi_doublequote/yml/00-base.yml b/tests/dictionaries_old/01base_value_multi_doublequote/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_value_multi_doublequote/yml/00-base.yml
rename to tests/dictionaries_old/01base_value_multi_doublequote/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_value_multi_doublequote2/00-base.xml b/tests/dictionaries_old/01base_value_multi_doublequote2/00-base.xml
deleted file mode 100644
index cc6ed95ec..000000000
--- a/tests/dictionaries_old/01base_value_multi_doublequote2/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- quote'"
-
-
-
-
diff --git a/tests/dictionaries_old/01base_value_multi_doublequote2/result/rougail/00-base.yml b/tests/dictionaries_old/01base_value_multi_doublequote2/result/rougail/00-base.yml
new file mode 100644
index 000000000..d09865f89
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_multi_doublequote2/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ multi: true
+ default:
+ - quote'"
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_value_multi_doublequote2/tiramisu/base.py b/tests/dictionaries_old/01base_value_multi_doublequote2/tiramisu/base.py
index c95d5892f..346b242d4 100644
--- a/tests/dictionaries_old/01base_value_multi_doublequote2/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_value_multi_doublequote2/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote\'"'], default_multi="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_value_multi_doublequote2/tiramisu/multi.py b/tests/dictionaries_old/01base_value_multi_doublequote2/tiramisu/multi.py
new file mode 100644
index 000000000..993e150d5
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_multi_doublequote2/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote\'"'], default_multi="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['quote\'"'], default_multi="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01base_value_multi_doublequote2/xml/00-base.xml b/tests/dictionaries_old/01base_value_multi_doublequote2/xml/00-base.xml
new file mode 100644
index 000000000..35851b772
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_multi_doublequote2/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ quote'"
+
+
+
+
diff --git a/tests/dictionaries/01base_value_multi_doublequote2/yml/00-base.yml b/tests/dictionaries_old/01base_value_multi_doublequote2/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_value_multi_doublequote2/yml/00-base.yml
rename to tests/dictionaries_old/01base_value_multi_doublequote2/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_value_multi_quote/00-base.xml b/tests/dictionaries_old/01base_value_multi_quote/00-base.xml
deleted file mode 100644
index a2a33d6db..000000000
--- a/tests/dictionaries_old/01base_value_multi_quote/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- quote'
-
-
-
-
diff --git a/tests/dictionaries_old/01base_value_multi_quote/result/rougail/00-base.yml b/tests/dictionaries_old/01base_value_multi_quote/result/rougail/00-base.yml
new file mode 100644
index 000000000..f998e9268
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_multi_quote/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ multi: true
+ default:
+ - quote'
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_value_multi_quote/tiramisu/base.py b/tests/dictionaries_old/01base_value_multi_quote/tiramisu/base.py
index c62b6670e..fbc54e930 100644
--- a/tests/dictionaries_old/01base_value_multi_quote/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_value_multi_quote/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'"], default_multi="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_value_multi_quote/tiramisu/multi.py b/tests/dictionaries_old/01base_value_multi_quote/tiramisu/multi.py
new file mode 100644
index 000000000..4f660b8b5
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_multi_quote/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'"], default_multi="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'"], default_multi="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01base_value_multi_quote/xml/00-base.xml b/tests/dictionaries_old/01base_value_multi_quote/xml/00-base.xml
new file mode 100644
index 000000000..e61e305cd
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_multi_quote/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ quote'
+
+
+
+
diff --git a/tests/dictionaries/01base_value_multi_quote/yml/00-base.yml b/tests/dictionaries_old/01base_value_multi_quote/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_value_multi_quote/yml/00-base.yml
rename to tests/dictionaries_old/01base_value_multi_quote/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_value_quote/00-base.xml b/tests/dictionaries_old/01base_value_quote/00-base.xml
deleted file mode 100644
index 1b8d7272c..000000000
--- a/tests/dictionaries_old/01base_value_quote/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- quote'
-
-
-
-
diff --git a/tests/dictionaries_old/01base_value_quote/result/rougail/00-base.yml b/tests/dictionaries_old/01base_value_quote/result/rougail/00-base.yml
new file mode 100644
index 000000000..d602e8e26
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_quote/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: quote'
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_value_quote/tiramisu/base.py b/tests/dictionaries_old/01base_value_quote/tiramisu/base.py
index 3a40d246d..60e250fed 100644
--- a/tests/dictionaries_old/01base_value_quote/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_value_quote/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_value_quote/tiramisu/multi.py b/tests/dictionaries_old/01base_value_quote/tiramisu/multi.py
new file mode 100644
index 000000000..0be7f55c8
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_quote/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01base_value_quote/xml/00-base.xml b/tests/dictionaries_old/01base_value_quote/xml/00-base.xml
new file mode 100644
index 000000000..17be48831
--- /dev/null
+++ b/tests/dictionaries_old/01base_value_quote/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ quote'
+
+
+
+
diff --git a/tests/dictionaries/01base_value_quote/yml/00-base.yml b/tests/dictionaries_old/01base_value_quote/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_value_quote/yml/00-base.yml
rename to tests/dictionaries_old/01base_value_quote/yml/00-base.yml
diff --git a/tests/dictionaries_old/01base_var_name_same_family/00-base.xml b/tests/dictionaries_old/01base_var_name_same_family/00-base.xml
deleted file mode 100644
index 7d8e62da1..000000000
--- a/tests/dictionaries_old/01base_var_name_same_family/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01base_var_name_same_family/result/rougail/00-base.yml b/tests/dictionaries_old/01base_var_name_same_family/result/rougail/00-base.yml
new file mode 100644
index 000000000..0a73fd775
--- /dev/null
+++ b/tests/dictionaries_old/01base_var_name_same_family/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ general:
+ type: string
+ description: description
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01base_var_name_same_family/tiramisu/base.py b/tests/dictionaries_old/01base_var_name_same_family/tiramisu/base.py
index 24c6c6c46..3198cc49d 100644
--- a/tests/dictionaries_old/01base_var_name_same_family/tiramisu/base.py
+++ b/tests/dictionaries_old/01base_var_name_same_family/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="general", 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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01base_var_name_same_family/tiramisu/multi.py b/tests/dictionaries_old/01base_var_name_same_family/tiramisu/multi.py
new file mode 100644
index 000000000..c57e08b13
--- /dev/null
+++ b/tests/dictionaries_old/01base_var_name_same_family/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="general", doc="description", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="general", doc="description", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01base_var_name_same_family/xml/00-base.xml b/tests/dictionaries_old/01base_var_name_same_family/xml/00-base.xml
new file mode 100644
index 000000000..da0749bb6
--- /dev/null
+++ b/tests/dictionaries_old/01base_var_name_same_family/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/01base_var_name_same_family/yml/00-base.yml b/tests/dictionaries_old/01base_var_name_same_family/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01base_var_name_same_family/yml/00-base.yml
rename to tests/dictionaries_old/01base_var_name_same_family/yml/00-base.yml
diff --git a/tests/dictionaries_old/01boolean_no_mandatory/00-base.xml b/tests/dictionaries_old/01boolean_no_mandatory/00-base.xml
deleted file mode 100644
index f17d73cdc..000000000
--- a/tests/dictionaries_old/01boolean_no_mandatory/00-base.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/01boolean_no_mandatory/result/rougail/00-base.yml b/tests/dictionaries_old/01boolean_no_mandatory/result/rougail/00-base.yml
new file mode 100644
index 000000000..456cb907f
--- /dev/null
+++ b/tests/dictionaries_old/01boolean_no_mandatory/result/rougail/00-base.yml
@@ -0,0 +1,4 @@
+my_variable:
+ type: boolean
+ mandatory: false
+version: '1.0'
diff --git a/tests/dictionaries_old/01boolean_no_mandatory/tiramisu/base.py b/tests/dictionaries_old/01boolean_no_mandatory/tiramisu/base.py
index 60c2c0722..29befc534 100644
--- a/tests/dictionaries_old/01boolean_no_mandatory/tiramisu/base.py
+++ b/tests/dictionaries_old/01boolean_no_mandatory/tiramisu/base.py
@@ -1,16 +1,28 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = BoolOption(name="my_variable", doc="my_variable", default=True, properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01boolean_no_mandatory/tiramisu/multi.py b/tests/dictionaries_old/01boolean_no_mandatory/tiramisu/multi.py
new file mode 100644
index 000000000..81f238db0
--- /dev/null
+++ b/tests/dictionaries_old/01boolean_no_mandatory/tiramisu/multi.py
@@ -0,0 +1,32 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_1 = BoolOption(name="my_variable", doc="my_variable", default=True, properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="1", doc="1", children=[optiondescription_4])
+option_2 = BoolOption(name="my_variable", doc="my_variable", default=True, properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3, optiondescription_5])
diff --git a/tests/dictionaries_old/01boolean_no_mandatory/xml/00-base.xml b/tests/dictionaries_old/01boolean_no_mandatory/xml/00-base.xml
new file mode 100644
index 000000000..ec14adb90
--- /dev/null
+++ b/tests/dictionaries_old/01boolean_no_mandatory/xml/00-base.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/tests/dictionaries/01boolean_no_mandatory/yml/00-base.yml b/tests/dictionaries_old/01boolean_no_mandatory/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01boolean_no_mandatory/yml/00-base.yml
rename to tests/dictionaries_old/01boolean_no_mandatory/yml/00-base.yml
diff --git a/tests/dictionaries_old/01family_description/00-base.xml b/tests/dictionaries_old/01family_description/00-base.xml
deleted file mode 100644
index d43898234..000000000
--- a/tests/dictionaries_old/01family_description/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01family_description/result/rougail/00-base.yml b/tests/dictionaries_old/01family_description/result/rougail/00-base.yml
new file mode 100644
index 000000000..737ff62b9
--- /dev/null
+++ b/tests/dictionaries_old/01family_description/result/rougail/00-base.yml
@@ -0,0 +1,5 @@
+general:
+ description: Other description
+ mode_conteneur_actif:
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01family_description/tiramisu/base.py b/tests/dictionaries_old/01family_description/tiramisu/base.py
index 0c2c6ac95..0b8e8bfaa 100644
--- a/tests/dictionaries_old/01family_description/tiramisu/base.py
+++ b/tests/dictionaries_old/01family_description/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="Other description", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="Other description", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01family_description/tiramisu/multi.py b/tests/dictionaries_old/01family_description/tiramisu/multi.py
new file mode 100644
index 000000000..0038de8de
--- /dev/null
+++ b/tests/dictionaries_old/01family_description/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="Other description", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="Other description", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01family_description/xml/00-base.xml b/tests/dictionaries_old/01family_description/xml/00-base.xml
new file mode 100644
index 000000000..bb32a55af
--- /dev/null
+++ b/tests/dictionaries_old/01family_description/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/01family_description/yml/00-base.yml b/tests/dictionaries_old/01family_description/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01family_description/yml/00-base.yml
rename to tests/dictionaries_old/01family_description/yml/00-base.yml
diff --git a/tests/dictionaries_old/01fill_autofreeze/00-base.xml b/tests/dictionaries_old/01fill_autofreeze/00-base.xml
deleted file mode 100644
index a1f99cdee..000000000
--- a/tests/dictionaries_old/01fill_autofreeze/00-base.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- no
-
-
- no
-
-
- False
-
-
-
-
- my_var2
- my_var1
-
-
-
diff --git a/tests/dictionaries_old/01fill_autofreeze/result/rougail/00-base.yml b/tests/dictionaries_old/01fill_autofreeze/result/rougail/00-base.yml
new file mode 100644
index 000000000..7fafd05a6
--- /dev/null
+++ b/tests/dictionaries_old/01fill_autofreeze/result/rougail/00-base.yml
@@ -0,0 +1,11 @@
+my_var1:
+ type: string
+ default:
+ type: jinja
+ jinja: '{{ rougail.my_var2 | calc_val }}'
+my_var2:
+ default: 'no'
+server_deployed:
+ type: boolean
+ default: false
+version: '1.0'
diff --git a/tests/dictionaries_old/01fill_autofreeze/tiramisu/base.py b/tests/dictionaries_old/01fill_autofreeze/tiramisu/base.py
index 66f5ebe81..8c6fc94fd 100644
--- a/tests/dictionaries_old/01fill_autofreeze/tiramisu/base.py
+++ b/tests/dictionaries_old/01fill_autofreeze/tiramisu/base.py
@@ -1,18 +1,60 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.my_var1'] = "{{ rougail.my_var2 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal"}))
+option_2 = StrOption(name="my_var1", doc="my_var1", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.my_var1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), 'rougail.my_var2': ParamOption(option_3)})), properties=frozenset({"normal"}))
option_4 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_2 = StrOption(name="my_var1", doc="my_var1", default=Calculation(func.calc_val, Params((ParamOption(option_3)))), properties=frozenset({"basic", "force_store_value", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue(True)}))}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01fill_autofreeze/tiramisu/multi.py b/tests/dictionaries_old/01fill_autofreeze/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01fill_autofreeze/tiramisu/multi.py
rename to tests/dictionaries_old/01fill_autofreeze/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01fill_autofreeze/xml/00-base.xml b/tests/dictionaries_old/01fill_autofreeze/xml/00-base.xml
new file mode 100644
index 000000000..0be0ea322
--- /dev/null
+++ b/tests/dictionaries_old/01fill_autofreeze/xml/00-base.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ no
+
+
+ no
+
+
+ False
+
+
+
+
+ my_var2
+ my_var1
+
+
+
diff --git a/tests/dictionaries/01fill_autofreeze/yml/00-base.yml b/tests/dictionaries_old/01fill_autofreeze/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01fill_autofreeze/yml/00-base.yml
rename to tests/dictionaries_old/01fill_autofreeze/yml/00-base.yml
diff --git a/tests/dictionaries_old/01fill_autosave/00-base.xml b/tests/dictionaries_old/01fill_autosave/00-base.xml
deleted file mode 100644
index b5bbda902..000000000
--- a/tests/dictionaries_old/01fill_autosave/00-base.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
- non
-
-
- non
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/01fill_autosave/result/rougail/00-base.yml b/tests/dictionaries_old/01fill_autosave/result/rougail/00-base.yml
new file mode 100644
index 000000000..b16c01b70
--- /dev/null
+++ b/tests/dictionaries_old/01fill_autosave/result/rougail/00-base.yml
@@ -0,0 +1,15 @@
+server_deployed:
+ type: boolean
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ auto_save: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01fill_autosave/tiramisu/base.py b/tests/dictionaries_old/01fill_autosave/tiramisu/base.py
index ea7a82c5b..89a5ce6d5 100644
--- a/tests/dictionaries_old/01fill_autosave/tiramisu/base.py
+++ b/tests/dictionaries_old/01fill_autosave/tiramisu/base.py
@@ -1,19 +1,61 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamOption(option_5)))), properties=frozenset({"basic", "force_store_value"}))
-option_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"basic", "force_store_value"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01fill_autosave/tiramisu/multi.py b/tests/dictionaries_old/01fill_autosave/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01fill_autosave/tiramisu/multi.py
rename to tests/dictionaries_old/01fill_autosave/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01fill_autosave/xml/00-base.xml b/tests/dictionaries_old/01fill_autosave/xml/00-base.xml
new file mode 100644
index 000000000..fe9c791ef
--- /dev/null
+++ b/tests/dictionaries_old/01fill_autosave/xml/00-base.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif1
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries_old/01fill_autosave/yml/00-base.yml b/tests/dictionaries_old/01fill_autosave/yml/00-base.yml
new file mode 100644
index 000000000..0a954a6ff
--- /dev/null
+++ b/tests/dictionaries_old/01fill_autosave/yml/00-base.yml
@@ -0,0 +1,28 @@
+version: '0.10'
+variables:
+- variable:
+ - name: server_deployed
+ type: boolean
+- family:
+ - name: general
+ variables:
+ - variable:
+ - name: mode_conteneur_actif
+ type: string
+ description: No change
+ auto_save: true
+ value:
+ - text: non
+ - name: mode_conteneur_actif1
+ type: string
+ description: No change
+ value:
+ - text: non
+constraints:
+- fill:
+ - name: calc_val
+ param:
+ - type: variable
+ text: mode_conteneur_actif1
+ target:
+ - text: mode_conteneur_actif
diff --git a/tests/dictionaries_old/01fill_base/00-base.xml b/tests/dictionaries_old/01fill_base/00-base.xml
deleted file mode 100644
index a8241336e..000000000
--- a/tests/dictionaries_old/01fill_base/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/01fill_base/result/rougail/00-base.yml b/tests/dictionaries_old/01fill_base/result/rougail/00-base.yml
new file mode 100644
index 000000000..ab500946e
--- /dev/null
+++ b/tests/dictionaries_old/01fill_base/result/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01fill_base/tiramisu/base.py b/tests/dictionaries_old/01fill_base/tiramisu/base.py
index 9969def5a..158f117b5 100644
--- a/tests/dictionaries_old/01fill_base/tiramisu/base.py
+++ b/tests/dictionaries_old/01fill_base/tiramisu/base.py
@@ -1,18 +1,60 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamOption(option_4)))), properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01fill_base/tiramisu/multi.py b/tests/dictionaries_old/01fill_base/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01fill_base/tiramisu/multi.py
rename to tests/dictionaries_old/01fill_base/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01fill_base/xml/00-base.xml b/tests/dictionaries_old/01fill_base/xml/00-base.xml
new file mode 100644
index 000000000..ab7559896
--- /dev/null
+++ b/tests/dictionaries_old/01fill_base/xml/00-base.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif1
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries_old/01fill_base/yml/00-base.yml b/tests/dictionaries_old/01fill_base/yml/00-base.yml
new file mode 100644
index 000000000..72437bb75
--- /dev/null
+++ b/tests/dictionaries_old/01fill_base/yml/00-base.yml
@@ -0,0 +1,22 @@
+version: '0.10'
+variables:
+- family:
+ - name: general
+ variables:
+ - variable:
+ - name: mode_conteneur_actif
+ type: string
+ description: No change
+ - name: mode_conteneur_actif1
+ type: string
+ description: No change
+ value:
+ - text: non
+constraints:
+- fill:
+ - name: calc_val
+ param:
+ - type: variable
+ text: mode_conteneur_actif1
+ target:
+ - text: mode_conteneur_actif
diff --git a/tests/dictionaries_old/01fill_mandatory/00-base.xml b/tests/dictionaries_old/01fill_mandatory/00-base.xml
deleted file mode 100644
index ac83f20e7..000000000
--- a/tests/dictionaries_old/01fill_mandatory/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/01fill_mandatory/result/rougail/00-base.yml b/tests/dictionaries_old/01fill_mandatory/result/rougail/00-base.yml
new file mode 100644
index 000000000..5e2ffd6b4
--- /dev/null
+++ b/tests/dictionaries_old/01fill_mandatory/result/rougail/00-base.yml
@@ -0,0 +1,15 @@
+general:
+ mode: basic
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ mandatory: true
+ mode: expert
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01fill_mandatory/tiramisu/base.py b/tests/dictionaries_old/01fill_mandatory/tiramisu/base.py
index 05cbc54ea..2b5348e1d 100644
--- a/tests/dictionaries_old/01fill_mandatory/tiramisu/base.py
+++ b/tests/dictionaries_old/01fill_mandatory/tiramisu/base.py
@@ -1,18 +1,60 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamOption(option_4)))), properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01fill_mandatory/tiramisu/multi.py b/tests/dictionaries_old/01fill_mandatory/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01fill_mandatory/tiramisu/multi.py
rename to tests/dictionaries_old/01fill_mandatory/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01fill_mandatory/xml/00-base.xml b/tests/dictionaries_old/01fill_mandatory/xml/00-base.xml
new file mode 100644
index 000000000..40c178d2c
--- /dev/null
+++ b/tests/dictionaries_old/01fill_mandatory/xml/00-base.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif1
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries_old/01fill_mandatory/yml/00-base.yml b/tests/dictionaries_old/01fill_mandatory/yml/00-base.yml
new file mode 100644
index 000000000..0823b1caf
--- /dev/null
+++ b/tests/dictionaries_old/01fill_mandatory/yml/00-base.yml
@@ -0,0 +1,25 @@
+version: '0.10'
+variables:
+- family:
+ - name: general
+ mode: basic
+ variables:
+ - variable:
+ - name: mode_conteneur_actif
+ type: string
+ description: No change
+ mandatory: true
+ mode: expert
+ - name: mode_conteneur_actif1
+ type: string
+ description: No change
+ value:
+ - text: non
+constraints:
+- fill:
+ - name: calc_val
+ param:
+ - type: variable
+ text: mode_conteneur_actif1
+ target:
+ - text: mode_conteneur_actif
diff --git a/tests/dictionaries_old/01fill_number/00-base.xml b/tests/dictionaries_old/01fill_number/00-base.xml
deleted file mode 100644
index ee2e4094b..000000000
--- a/tests/dictionaries_old/01fill_number/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
-
- 3
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/01fill_number/result/rougail/00-base.yml b/tests/dictionaries_old/01fill_number/result/rougail/00-base.yml
new file mode 100644
index 000000000..d8c520b53
--- /dev/null
+++ b/tests/dictionaries_old/01fill_number/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: number
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ 3 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01fill_number/tiramisu/base.py b/tests/dictionaries_old/01fill_number/tiramisu/base.py
index ff65ea85b..31cd38a59 100644
--- a/tests/dictionaries_old/01fill_number/tiramisu/base.py
+++ b/tests/dictionaries_old/01fill_number/tiramisu/base.py
@@ -1,18 +1,60 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = IntOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue(3)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ 3 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = IntOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(number), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01fill_number/tiramisu/multi.py b/tests/dictionaries_old/01fill_number/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01fill_number/tiramisu/multi.py
rename to tests/dictionaries_old/01fill_number/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01fill_number/xml/00-base.xml b/tests/dictionaries_old/01fill_number/xml/00-base.xml
new file mode 100644
index 000000000..3054d582d
--- /dev/null
+++ b/tests/dictionaries_old/01fill_number/xml/00-base.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+ non
+
+
+
+
+
+ 3
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries_old/01fill_number/yml/00-base.yml b/tests/dictionaries_old/01fill_number/yml/00-base.yml
new file mode 100644
index 000000000..97de4ec99
--- /dev/null
+++ b/tests/dictionaries_old/01fill_number/yml/00-base.yml
@@ -0,0 +1,23 @@
+version: '0.10'
+variables:
+- family:
+ - name: general
+ variables:
+ - variable:
+ - name: mode_conteneur_actif
+ type: number
+ description: No change
+ hidden: true
+ - name: mode_conteneur_actif1
+ type: string
+ description: No change
+ value:
+ - text: non
+constraints:
+- fill:
+ - name: calc_val
+ param:
+ - type: number
+ text: 3
+ target:
+ - text: mode_conteneur_actif
diff --git a/tests/dictionaries_old/01fill_only_optional/00-base.xml b/tests/dictionaries_old/01fill_only_optional/00-base.xml
deleted file mode 100644
index 10fef3065..000000000
--- a/tests/dictionaries_old/01fill_only_optional/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
-
- mode_conteneur_actif4
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/01fill_only_optional/result/rougail/00-base.yml b/tests/dictionaries_old/01fill_only_optional/result/rougail/00-base.yml
new file mode 100644
index 000000000..9213a90e1
--- /dev/null
+++ b/tests/dictionaries_old/01fill_only_optional/result/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ __mode_conteneur_actif4 | calc_val }}'
+ params:
+ __mode_conteneur_actif4:
+ type: variable
+ variable: __mode_conteneur_actif4
+ optional: true
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01fill_only_optional/tiramisu/base.py b/tests/dictionaries_old/01fill_only_optional/tiramisu/base.py
index 434055916..d6983d97e 100644
--- a/tests/dictionaries_old/01fill_only_optional/tiramisu/base.py
+++ b/tests/dictionaries_old/01fill_only_optional/tiramisu/base.py
@@ -1,18 +1,60 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params(())), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ __mode_conteneur_actif4 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01fill_only_optional/tiramisu/multi.py b/tests/dictionaries_old/01fill_only_optional/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01fill_only_optional/tiramisu/multi.py
rename to tests/dictionaries_old/01fill_only_optional/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01fill_only_optional/xml/00-base.xml b/tests/dictionaries_old/01fill_only_optional/xml/00-base.xml
new file mode 100644
index 000000000..fd9f67b18
--- /dev/null
+++ b/tests/dictionaries_old/01fill_only_optional/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif4
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries_old/01fill_only_optional/yml/00-base.yml b/tests/dictionaries_old/01fill_only_optional/yml/00-base.yml
new file mode 100644
index 000000000..918721564
--- /dev/null
+++ b/tests/dictionaries_old/01fill_only_optional/yml/00-base.yml
@@ -0,0 +1,26 @@
+version: '0.10'
+variables:
+- family:
+ - name: general
+ variables:
+ - variable:
+ - name: mode_conteneur_actif
+ type: string
+ description: No change
+ hidden: true
+ value:
+ - text: non
+ - name: mode_conteneur_actif1
+ type: string
+ description: No change
+ value:
+ - text: non
+constraints:
+- fill:
+ - name: calc_val
+ param:
+ - type: variable
+ optional: true
+ text: mode_conteneur_actif4
+ target:
+ - text: mode_conteneur_actif
diff --git a/tests/dictionaries_old/01fill_optional/00-base.xml b/tests/dictionaries_old/01fill_optional/00-base.xml
deleted file mode 100644
index 6382ce450..000000000
--- a/tests/dictionaries_old/01fill_optional/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
-
- mode_conteneur_actif4
- mode_conteneur_actif1
- mode_conteneur_actif3
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/01fill_optional/result/rougail/00-base.yml b/tests/dictionaries_old/01fill_optional/result/rougail/00-base.yml
new file mode 100644
index 000000000..f9998cc42
--- /dev/null
+++ b/tests/dictionaries_old/01fill_optional/result/rougail/00-base.yml
@@ -0,0 +1,23 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ __mode_conteneur_actif4 | calc_val(rougail.general.mode_conteneur_actif1,
+ __mode_conteneur_actif3) }}'
+ params:
+ __mode_conteneur_actif4:
+ type: variable
+ variable: __mode_conteneur_actif4
+ optional: true
+ __mode_conteneur_actif3:
+ type: variable
+ variable: __mode_conteneur_actif3
+ optional: true
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01fill_optional/tiramisu/base.py b/tests/dictionaries_old/01fill_optional/tiramisu/base.py
index 27b086b6d..dc8f7e784 100644
--- a/tests/dictionaries_old/01fill_optional/tiramisu/base.py
+++ b/tests/dictionaries_old/01fill_optional/tiramisu/base.py
@@ -1,18 +1,60 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ __mode_conteneur_actif4 | calc_val(rougail.general.mode_conteneur_actif1, __mode_conteneur_actif3) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01fill_optional/tiramisu/multi.py b/tests/dictionaries_old/01fill_optional/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01fill_optional/tiramisu/multi.py
rename to tests/dictionaries_old/01fill_optional/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01fill_optional/xml/00-base.xml b/tests/dictionaries_old/01fill_optional/xml/00-base.xml
new file mode 100644
index 000000000..4fd16348a
--- /dev/null
+++ b/tests/dictionaries_old/01fill_optional/xml/00-base.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif4
+ mode_conteneur_actif1
+ mode_conteneur_actif3
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/01fill_optional/yml/00-base.yml b/tests/dictionaries_old/01fill_optional/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01fill_optional/yml/00-base.yml
rename to tests/dictionaries_old/01fill_optional/yml/00-base.yml
diff --git a/tests/dictionaries_old/01fill_quote/00-base.xml b/tests/dictionaries_old/01fill_quote/00-base.xml
deleted file mode 100644
index 155af2703..000000000
--- a/tests/dictionaries_old/01fill_quote/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- quote'
- mode_conteneur_actif
-
-
- quote"
- mode_conteneur_actif1
-
-
- quote"'
- mode_conteneur_actif2
-
-
- quote"\'
- mode_conteneur_actif3
-
-
-
diff --git a/tests/dictionaries_old/01fill_quote/result/rougail/00-base.yml b/tests/dictionaries_old/01fill_quote/result/rougail/00-base.yml
new file mode 100644
index 000000000..fe8245e01
--- /dev/null
+++ b/tests/dictionaries_old/01fill_quote/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "quote''" | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "quote\"" | calc_val }}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "quote\"''" | calc_val }}'
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "quote\"\\''" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/01fill_quote/tiramisu/base.py b/tests/dictionaries_old/01fill_quote/tiramisu/base.py
index c6040cf1f..f2ab4078a 100644
--- a/tests/dictionaries_old/01fill_quote/tiramisu/base.py
+++ b/tests/dictionaries_old/01fill_quote/tiramisu/base.py
@@ -1,20 +1,65 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("quote'")))), properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("quote\"")))), properties=frozenset({"normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("quote\"'")))), properties=frozenset({"normal"}))
-option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("quote\"\\'")))), properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ \"quote'\" | calc_val }}"
+dict_env['rougail.general.mode_conteneur_actif1'] = "{{ \"quote\\\"\" | calc_val }}"
+dict_env['rougail.general.mode_conteneur_actif2'] = "{{ \"quote\\\"'\" | calc_val }}"
+dict_env['rougail.general.mode_conteneur_actif3'] = "{{ \"quote\\\"\\\\'\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif3), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01fill_quote/tiramisu/multi.py b/tests/dictionaries_old/01fill_quote/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01fill_quote/tiramisu/multi.py
rename to tests/dictionaries_old/01fill_quote/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01fill_quote/xml/00-base.xml b/tests/dictionaries_old/01fill_quote/xml/00-base.xml
new file mode 100644
index 000000000..058554ac8
--- /dev/null
+++ b/tests/dictionaries_old/01fill_quote/xml/00-base.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ quote'
+ mode_conteneur_actif
+
+
+ quote"
+ mode_conteneur_actif1
+
+
+ quote"'
+ mode_conteneur_actif2
+
+
+ quote"\'
+ mode_conteneur_actif3
+
+
+
diff --git a/tests/dictionaries/01fill_quote/yml/00-base.yml b/tests/dictionaries_old/01fill_quote/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01fill_quote/yml/00-base.yml
rename to tests/dictionaries_old/01fill_quote/yml/00-base.yml
diff --git a/tests/dictionaries_old/01fill_target_optional/00-base.xml b/tests/dictionaries_old/01fill_target_optional/00-base.xml
deleted file mode 100644
index d2421162b..000000000
--- a/tests/dictionaries_old/01fill_target_optional/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/01fill_target_optional/result/rougail/00-base.yml b/tests/dictionaries_old/01fill_target_optional/result/rougail/00-base.yml
new file mode 100644
index 000000000..8d14352b8
--- /dev/null
+++ b/tests/dictionaries_old/01fill_target_optional/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01fill_target_optional/tiramisu/base.py b/tests/dictionaries_old/01fill_target_optional/tiramisu/base.py
index cb5556e93..a743fa264 100644
--- a/tests/dictionaries_old/01fill_target_optional/tiramisu/base.py
+++ b/tests/dictionaries_old/01fill_target_optional/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", 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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01fill_target_optional/tiramisu/multi.py b/tests/dictionaries_old/01fill_target_optional/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01fill_target_optional/tiramisu/multi.py
rename to tests/dictionaries_old/01fill_target_optional/tiramisu/multi.py
diff --git a/tests/dictionaries_old/01fill_target_optional/xml/00-base.xml b/tests/dictionaries_old/01fill_target_optional/xml/00-base.xml
new file mode 100644
index 000000000..7dbd36d93
--- /dev/null
+++ b/tests/dictionaries_old/01fill_target_optional/xml/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif1
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/01fill_target_optional/yml/00-base.yml b/tests/dictionaries_old/01fill_target_optional/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01fill_target_optional/yml/00-base.yml
rename to tests/dictionaries_old/01fill_target_optional/yml/00-base.yml
diff --git a/tests/dictionaries_old/01hidden_if_in_autofreeze/00-base.xml b/tests/dictionaries_old/01hidden_if_in_autofreeze/00-base.xml
deleted file mode 100644
index 2626d61c4..000000000
--- a/tests/dictionaries_old/01hidden_if_in_autofreeze/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
- False
-
-
- no
-
-
-
-
- yes
- my_var
-
-
- True
- my_var
-
-
-
diff --git a/tests/dictionaries_old/01hidden_if_in_autofreeze/result/rougail/00-base.yml b/tests/dictionaries_old/01hidden_if_in_autofreeze/result/rougail/00-base.yml
new file mode 100644
index 000000000..5ceedf641
--- /dev/null
+++ b/tests/dictionaries_old/01hidden_if_in_autofreeze/result/rougail/00-base.yml
@@ -0,0 +1,12 @@
+server_deployed:
+ type: boolean
+ default: false
+my_var:
+ type: string
+ default:
+ type: jinja
+ jinja: '{{ "yes" | calc_val }}'
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.server_deployed == true %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/01hidden_if_in_autofreeze/tiramisu/base.py b/tests/dictionaries_old/01hidden_if_in_autofreeze/tiramisu/base.py
index d9396d4c9..1a2b81fff 100644
--- a/tests/dictionaries_old/01hidden_if_in_autofreeze/tiramisu/base.py
+++ b/tests/dictionaries_old/01hidden_if_in_autofreeze/tiramisu/base.py
@@ -1,17 +1,59 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.my_var'] = "{{ \"yes\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="my_var", doc="my_var", default=Calculation(func.calc_val, Params((ParamValue("yes")))), properties=frozenset({"basic", "force_store_value", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, todict=True, notraisepropertyerror=True), 'expected': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, todict=True, notraisepropertyerror=True), 'expected': ParamValue(True)}))}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_3 = StrOption(name="my_var", doc="my_var", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.my_var), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/01hidden_if_in_autofreeze/tiramisu/multi.py b/tests/dictionaries_old/01hidden_if_in_autofreeze/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/01hidden_if_in_autofreeze/tiramisu/multi.py
rename to tests/dictionaries_old/01hidden_if_in_autofreeze/tiramisu/multi.py
diff --git a/tests/dictionaries/01hidden_if_in_autofreeze/xml/00-base.xml b/tests/dictionaries_old/01hidden_if_in_autofreeze/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/01hidden_if_in_autofreeze/xml/00-base.xml
rename to tests/dictionaries_old/01hidden_if_in_autofreeze/xml/00-base.xml
diff --git a/tests/dictionaries/01hidden_if_in_autofreeze/yml/00-base.yml b/tests/dictionaries_old/01hidden_if_in_autofreeze/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01hidden_if_in_autofreeze/yml/00-base.yml
rename to tests/dictionaries_old/01hidden_if_in_autofreeze/yml/00-base.yml
diff --git a/tests/dictionaries_old/01test/00-base.xml b/tests/dictionaries_old/01test/00-base.xml
deleted file mode 100644
index a3d9a16c7..000000000
--- a/tests/dictionaries_old/01test/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01test/result/rougail/00-base.yml b/tests/dictionaries_old/01test/result/rougail/00-base.yml
new file mode 100644
index 000000000..ebb1ccc0f
--- /dev/null
+++ b/tests/dictionaries_old/01test/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ test:
+ - test
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01test/tiramisu/base.py b/tests/dictionaries_old/01test/tiramisu/base.py
index bf9b948e4..b26ca5455 100644
--- a/tests/dictionaries_old/01test/tiramisu/base.py
+++ b/tests/dictionaries_old/01test/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
option_3.impl_set_information('test', ('test',))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01test/tiramisu/multi.py b/tests/dictionaries_old/01test/tiramisu/multi.py
new file mode 100644
index 000000000..d42e8e1be
--- /dev/null
+++ b/tests/dictionaries_old/01test/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_2.impl_set_information('test', ('test',))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4.impl_set_information('test', ('test',))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01test/xml/00-base.xml b/tests/dictionaries_old/01test/xml/00-base.xml
new file mode 100644
index 000000000..4c938a147
--- /dev/null
+++ b/tests/dictionaries_old/01test/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/01test/yml/00-base.yml b/tests/dictionaries_old/01test/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01test/yml/00-base.yml
rename to tests/dictionaries_old/01test/yml/00-base.yml
diff --git a/tests/dictionaries_old/01test_multi/00-base.xml b/tests/dictionaries_old/01test_multi/00-base.xml
deleted file mode 100644
index 3fbe4b855..000000000
--- a/tests/dictionaries_old/01test_multi/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01test_multi/result/rougail/00-base.yml b/tests/dictionaries_old/01test_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..feab3f363
--- /dev/null
+++ b/tests/dictionaries_old/01test_multi/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ test:
+ - test1
+ - test2
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01test_multi/tiramisu/base.py b/tests/dictionaries_old/01test_multi/tiramisu/base.py
index d87841f98..e61c42aae 100644
--- a/tests/dictionaries_old/01test_multi/tiramisu/base.py
+++ b/tests/dictionaries_old/01test_multi/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
option_3.impl_set_information('test', ('test1', 'test2'))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01test_multi/tiramisu/multi.py b/tests/dictionaries_old/01test_multi/tiramisu/multi.py
new file mode 100644
index 000000000..109837eda
--- /dev/null
+++ b/tests/dictionaries_old/01test_multi/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_2.impl_set_information('test', ('test1', 'test2'))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4.impl_set_information('test', ('test1', 'test2'))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01test_multi/xml/00-base.xml b/tests/dictionaries_old/01test_multi/xml/00-base.xml
new file mode 100644
index 000000000..971cd5145
--- /dev/null
+++ b/tests/dictionaries_old/01test_multi/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/01test_multi/yml/00-base.yml b/tests/dictionaries_old/01test_multi/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01test_multi/yml/00-base.yml
rename to tests/dictionaries_old/01test_multi/yml/00-base.yml
diff --git a/tests/dictionaries_old/01test_multi_none/00-base.xml b/tests/dictionaries_old/01test_multi_none/00-base.xml
deleted file mode 100644
index eef0cf6ea..000000000
--- a/tests/dictionaries_old/01test_multi_none/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01test_multi_none/result/rougail/00-base.yml b/tests/dictionaries_old/01test_multi_none/result/rougail/00-base.yml
new file mode 100644
index 000000000..0470e7f47
--- /dev/null
+++ b/tests/dictionaries_old/01test_multi_none/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ mode_conteneur_actif:
+ test:
+ - null
+ - test1
+ - test2
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01test_multi_none/tiramisu/base.py b/tests/dictionaries_old/01test_multi_none/tiramisu/base.py
index 36479fd75..51451bf7d 100644
--- a/tests/dictionaries_old/01test_multi_none/tiramisu/base.py
+++ b/tests/dictionaries_old/01test_multi_none/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
option_3.impl_set_information('test', (None, 'test1', 'test2'))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01test_multi_none/tiramisu/multi.py b/tests/dictionaries_old/01test_multi_none/tiramisu/multi.py
new file mode 100644
index 000000000..3a45a6a56
--- /dev/null
+++ b/tests/dictionaries_old/01test_multi_none/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_2.impl_set_information('test', (None, 'test1', 'test2'))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4.impl_set_information('test', (None, 'test1', 'test2'))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01test_multi_none/xml/00-base.xml b/tests/dictionaries_old/01test_multi_none/xml/00-base.xml
new file mode 100644
index 000000000..9afd80f7e
--- /dev/null
+++ b/tests/dictionaries_old/01test_multi_none/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/01test_multi_none/yml/00-base.yml b/tests/dictionaries_old/01test_multi_none/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01test_multi_none/yml/00-base.yml
rename to tests/dictionaries_old/01test_multi_none/yml/00-base.yml
diff --git a/tests/dictionaries_old/01test_redefine/00-base.xml b/tests/dictionaries_old/01test_redefine/00-base.xml
deleted file mode 100644
index a3d9a16c7..000000000
--- a/tests/dictionaries_old/01test_redefine/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01test_redefine/10-base.xml b/tests/dictionaries_old/01test_redefine/10-base.xml
deleted file mode 100644
index 131db74ef..000000000
--- a/tests/dictionaries_old/01test_redefine/10-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/01test_redefine/result/rougail/00-base.yml b/tests/dictionaries_old/01test_redefine/result/rougail/00-base.yml
new file mode 100644
index 000000000..ebb1ccc0f
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ test:
+ - test
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01test_redefine/result/rougail/10-base.yml b/tests/dictionaries_old/01test_redefine/result/rougail/10-base.yml
new file mode 100644
index 000000000..c584566d2
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine/result/rougail/10-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ test:
+ - test1
+version: '1.0'
diff --git a/tests/dictionaries_old/01test_redefine/tiramisu/base.py b/tests/dictionaries_old/01test_redefine/tiramisu/base.py
index 43bb1a12e..ab83c872a 100644
--- a/tests/dictionaries_old/01test_redefine/tiramisu/base.py
+++ b/tests/dictionaries_old/01test_redefine/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
option_3.impl_set_information('test', ('test1',))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01test_redefine/tiramisu/multi.py b/tests/dictionaries_old/01test_redefine/tiramisu/multi.py
new file mode 100644
index 000000000..0e732dd8b
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_2.impl_set_information('test', ('test1',))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4.impl_set_information('test', ('test1',))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01test_redefine/xml/00-base.xml b/tests/dictionaries_old/01test_redefine/xml/00-base.xml
new file mode 100644
index 000000000..4c938a147
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/01test_redefine/xml/10-base.xml b/tests/dictionaries_old/01test_redefine/xml/10-base.xml
new file mode 100644
index 000000000..dd8ef7513
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine/xml/10-base.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/01test_redefine/yml/00-base.yml b/tests/dictionaries_old/01test_redefine/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01test_redefine/yml/00-base.yml
rename to tests/dictionaries_old/01test_redefine/yml/00-base.yml
diff --git a/tests/dictionaries/01test_redefine/yml/10-base.yml b/tests/dictionaries_old/01test_redefine/yml/10-base.yml
similarity index 100%
rename from tests/dictionaries/01test_redefine/yml/10-base.yml
rename to tests/dictionaries_old/01test_redefine/yml/10-base.yml
diff --git a/tests/dictionaries_old/01test_redefine_base/00-base.xml b/tests/dictionaries_old/01test_redefine_base/00-base.xml
deleted file mode 100644
index 51e932bfa..000000000
--- a/tests/dictionaries_old/01test_redefine_base/00-base.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/01test_redefine_base/10-base.xml b/tests/dictionaries_old/01test_redefine_base/10-base.xml
deleted file mode 100644
index ca929f577..000000000
--- a/tests/dictionaries_old/01test_redefine_base/10-base.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/01test_redefine_base/result/rougail/00-base.yml b/tests/dictionaries_old/01test_redefine_base/result/rougail/00-base.yml
new file mode 100644
index 000000000..e5a393622
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine_base/result/rougail/00-base.yml
@@ -0,0 +1,3 @@
+my_variable:
+ type: string
+version: '1.0'
diff --git a/tests/dictionaries_old/01test_redefine_base/result/rougail/10-base.yml b/tests/dictionaries_old/01test_redefine_base/result/rougail/10-base.yml
new file mode 100644
index 000000000..cae538c2c
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine_base/result/rougail/10-base.yml
@@ -0,0 +1,5 @@
+my_variable:
+ redefine: true
+ test:
+ - test1
+version: '1.0'
diff --git a/tests/dictionaries_old/01test_redefine_base/tiramisu/base.py b/tests/dictionaries_old/01test_redefine_base/tiramisu/base.py
index 98beb8cf2..036f803af 100644
--- a/tests/dictionaries_old/01test_redefine_base/tiramisu/base.py
+++ b/tests/dictionaries_old/01test_redefine_base/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
option_2.impl_set_information('test', ('test1',))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01test_redefine_base/tiramisu/multi.py b/tests/dictionaries_old/01test_redefine_base/tiramisu/multi.py
new file mode 100644
index 000000000..d005f51e4
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine_base/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_1 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
+option_1.impl_set_information('test', ('test1',))
+optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="1", doc="1", children=[optiondescription_4])
+option_2 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
+option_2.impl_set_information('test', ('test1',))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3, optiondescription_5])
diff --git a/tests/dictionaries_old/01test_redefine_base/xml/00-base.xml b/tests/dictionaries_old/01test_redefine_base/xml/00-base.xml
new file mode 100644
index 000000000..6d227190e
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine_base/xml/00-base.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/tests/dictionaries_old/01test_redefine_base/xml/10-base.xml b/tests/dictionaries_old/01test_redefine_base/xml/10-base.xml
new file mode 100644
index 000000000..2446a70e0
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine_base/xml/10-base.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/tests/dictionaries/01test_redefine_base/yml/00-base.yml b/tests/dictionaries_old/01test_redefine_base/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01test_redefine_base/yml/00-base.yml
rename to tests/dictionaries_old/01test_redefine_base/yml/00-base.yml
diff --git a/tests/dictionaries/01test_redefine_base/yml/10-base.yml b/tests/dictionaries_old/01test_redefine_base/yml/10-base.yml
similarity index 100%
rename from tests/dictionaries/01test_redefine_base/yml/10-base.yml
rename to tests/dictionaries_old/01test_redefine_base/yml/10-base.yml
diff --git a/tests/dictionaries_old/01test_redefine_remove/00-base.xml b/tests/dictionaries_old/01test_redefine_remove/00-base.xml
deleted file mode 100644
index a3d9a16c7..000000000
--- a/tests/dictionaries_old/01test_redefine_remove/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/01test_redefine_remove/10-base.xml b/tests/dictionaries_old/01test_redefine_remove/10-base.xml
deleted file mode 100644
index b1c129959..000000000
--- a/tests/dictionaries_old/01test_redefine_remove/10-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/01test_redefine_remove/result/rougail/00-base.yml b/tests/dictionaries_old/01test_redefine_remove/result/rougail/00-base.yml
new file mode 100644
index 000000000..ebb1ccc0f
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine_remove/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ test:
+ - test
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/01test_redefine_remove/result/rougail/10-base.yml b/tests/dictionaries_old/01test_redefine_remove/result/rougail/10-base.yml
new file mode 100644
index 000000000..a05b73a9d
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine_remove/result/rougail/10-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ test:
+ - null
+version: '1.0'
diff --git a/tests/dictionaries_old/01test_redefine_remove/tiramisu/base.py b/tests/dictionaries_old/01test_redefine_remove/tiramisu/base.py
index ed5b96cd3..44692aef9 100644
--- a/tests/dictionaries_old/01test_redefine_remove/tiramisu/base.py
+++ b/tests/dictionaries_old/01test_redefine_remove/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", 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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/01test_redefine_remove/tiramisu/multi.py b/tests/dictionaries_old/01test_redefine_remove/tiramisu/multi.py
new file mode 100644
index 000000000..1326f247d
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine_remove/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/01test_redefine_remove/xml/00-base.xml b/tests/dictionaries_old/01test_redefine_remove/xml/00-base.xml
new file mode 100644
index 000000000..4c938a147
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine_remove/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/01test_redefine_remove/xml/10-base.xml b/tests/dictionaries_old/01test_redefine_remove/xml/10-base.xml
new file mode 100644
index 000000000..3a1e3e60e
--- /dev/null
+++ b/tests/dictionaries_old/01test_redefine_remove/xml/10-base.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/01test_redefine_remove/yml/00-base.yml b/tests/dictionaries_old/01test_redefine_remove/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/01test_redefine_remove/yml/00-base.yml
rename to tests/dictionaries_old/01test_redefine_remove/yml/00-base.yml
diff --git a/tests/dictionaries/01test_redefine_remove/yml/10-base.yml b/tests/dictionaries_old/01test_redefine_remove/yml/10-base.yml
similarity index 100%
rename from tests/dictionaries/01test_redefine_remove/yml/10-base.yml
rename to tests/dictionaries_old/01test_redefine_remove/yml/10-base.yml
diff --git a/tests/dictionaries_old/02autosave_hidden_frozenifin/00-base.xml b/tests/dictionaries_old/02autosave_hidden_frozenifin/00-base.xml
deleted file mode 100644
index 6f811c347..000000000
--- a/tests/dictionaries_old/02autosave_hidden_frozenifin/00-base.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
-
-
- oui
- autosavevar
-
-
- oui
- autosavevar
-
-
-
diff --git a/tests/dictionaries_old/02autosave_hidden_frozenifin/result/rougail/00-base.yml b/tests/dictionaries_old/02autosave_hidden_frozenifin/result/rougail/00-base.yml
new file mode 100644
index 000000000..fe6b77e4b
--- /dev/null
+++ b/tests/dictionaries_old/02autosave_hidden_frozenifin/result/rougail/00-base.yml
@@ -0,0 +1,21 @@
+server_deployed:
+ type: boolean
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ autosavevar:
+ type: string
+ description: autosave variable
+ auto_save: true
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.mode_conteneur_actif == "oui" %}true{% else %}false{%
+ endif %}'
+ default:
+ type: jinja
+ jinja: '{{ "oui" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/02autosave_hidden_frozenifin/tiramisu/base.py b/tests/dictionaries_old/02autosave_hidden_frozenifin/tiramisu/base.py
index f5fbacc37..7ab5c21a6 100644
--- a/tests/dictionaries_old/02autosave_hidden_frozenifin/tiramisu/base.py
+++ b/tests/dictionaries_old/02autosave_hidden_frozenifin/tiramisu/base.py
@@ -1,19 +1,61 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func.calc_val, Params((ParamValue("oui")))), properties=frozenset({"basic", "force_store_value", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.autosavevar), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"basic", "force_store_value"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/02autosave_hidden_frozenifin/tiramisu/multi.py b/tests/dictionaries_old/02autosave_hidden_frozenifin/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/02autosave_hidden_frozenifin/tiramisu/multi.py
rename to tests/dictionaries_old/02autosave_hidden_frozenifin/tiramisu/multi.py
diff --git a/tests/dictionaries_old/02autosave_hidden_frozenifin/xml/00-base.xml b/tests/dictionaries_old/02autosave_hidden_frozenifin/xml/00-base.xml
new file mode 100644
index 000000000..99fb291ed
--- /dev/null
+++ b/tests/dictionaries_old/02autosave_hidden_frozenifin/xml/00-base.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+ non
+
+
+
+
+
+
+ oui
+ autosavevar
+
+
+ oui
+ autosavevar
+
+
+
diff --git a/tests/dictionaries/02autosave_hidden_frozenifin/yml/00-base.yml b/tests/dictionaries_old/02autosave_hidden_frozenifin/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/02autosave_hidden_frozenifin/yml/00-base.yml
rename to tests/dictionaries_old/02autosave_hidden_frozenifin/yml/00-base.yml
diff --git a/tests/dictionaries_old/02fill_multi_calc_val/00-base.xml b/tests/dictionaries_old/02fill_multi_calc_val/00-base.xml
deleted file mode 100644
index 66876828b..000000000
--- a/tests/dictionaries_old/02fill_multi_calc_val/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- no
-
-
-
-
-
- var1
- True
- var2
-
-
-
diff --git a/tests/dictionaries_old/02fill_multi_calc_val/result/rougail/00-base.yml b/tests/dictionaries_old/02fill_multi_calc_val/result/rougail/00-base.yml
new file mode 100644
index 000000000..d3ce889e6
--- /dev/null
+++ b/tests/dictionaries_old/02fill_multi_calc_val/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+var1:
+ default: 'no'
+var2:
+ multi: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.var1 | calc_value(multi=true) }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/02fill_multi_calc_val/tiramisu/base.py b/tests/dictionaries_old/02fill_multi_calc_val/tiramisu/base.py
index 465b97530..ccead7fe4 100644
--- a/tests/dictionaries_old/02fill_multi_calc_val/tiramisu/base.py
+++ b/tests/dictionaries_old/02fill_multi_calc_val/tiramisu/base.py
@@ -1,17 +1,59 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.var2'] = "{{ rougail.var1 | calc_value(multi=true) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_2 = StrOption(name="var1", doc="var1", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func.calc_value, Params((ParamOption(option_2)), kwargs={'multi': ParamValue(True)})), properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_3 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.var2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.var1': ParamOption(option_2)})), properties=frozenset({"normal", "notempty"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/02fill_multi_calc_val/tiramisu/multi.py b/tests/dictionaries_old/02fill_multi_calc_val/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val/tiramisu/multi.py
rename to tests/dictionaries_old/02fill_multi_calc_val/tiramisu/multi.py
diff --git a/tests/dictionaries_old/02fill_multi_calc_val/xml/00-base.xml b/tests/dictionaries_old/02fill_multi_calc_val/xml/00-base.xml
new file mode 100644
index 000000000..1f15a1228
--- /dev/null
+++ b/tests/dictionaries_old/02fill_multi_calc_val/xml/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ no
+
+
+
+
+
+ var1
+ True
+ var2
+
+
+
diff --git a/tests/dictionaries/02fill_multi_calc_val/yml/00-base.yml b/tests/dictionaries_old/02fill_multi_calc_val/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val/yml/00-base.yml
rename to tests/dictionaries_old/02fill_multi_calc_val/yml/00-base.yml
diff --git a/tests/dictionaries_old/02fill_multi_calc_val_multi/00-base.xml b/tests/dictionaries_old/02fill_multi_calc_val_multi/00-base.xml
deleted file mode 100644
index f260758ab..000000000
--- a/tests/dictionaries_old/02fill_multi_calc_val_multi/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- no
- yes
- maybe
-
-
-
-
-
- var1
- var2
-
-
-
diff --git a/tests/dictionaries_old/02fill_multi_calc_val_multi/result/rougail/00-base.yml b/tests/dictionaries_old/02fill_multi_calc_val_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..e18965929
--- /dev/null
+++ b/tests/dictionaries_old/02fill_multi_calc_val_multi/result/rougail/00-base.yml
@@ -0,0 +1,12 @@
+var1:
+ multi: true
+ default:
+ - 'no'
+ - 'yes'
+ - maybe
+var2:
+ multi: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.var1 | calc_value }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/02fill_multi_calc_val_multi/tiramisu/base.py b/tests/dictionaries_old/02fill_multi_calc_val_multi/tiramisu/base.py
index 0026e9405..35a091b9e 100644
--- a/tests/dictionaries_old/02fill_multi_calc_val_multi/tiramisu/base.py
+++ b/tests/dictionaries_old/02fill_multi_calc_val_multi/tiramisu/base.py
@@ -1,17 +1,59 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.var2'] = "{{ rougail.var1 | calc_value }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_2 = StrOption(name="var1", doc="var1", multi=True, default=['no', 'yes', 'maybe'], default_multi="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func.calc_value, Params((ParamOption(option_2)))), properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_3 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.var2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.var1': ParamOption(option_2)})), properties=frozenset({"normal", "notempty"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/02fill_multi_calc_val_multi/tiramisu/multi.py b/tests/dictionaries_old/02fill_multi_calc_val_multi/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val_multi/tiramisu/multi.py
rename to tests/dictionaries_old/02fill_multi_calc_val_multi/tiramisu/multi.py
diff --git a/tests/dictionaries_old/02fill_multi_calc_val_multi/xml/00-base.xml b/tests/dictionaries_old/02fill_multi_calc_val_multi/xml/00-base.xml
new file mode 100644
index 000000000..889202bf0
--- /dev/null
+++ b/tests/dictionaries_old/02fill_multi_calc_val_multi/xml/00-base.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ no
+ yes
+ maybe
+
+
+
+
+
+ var1
+ var2
+
+
+
diff --git a/tests/dictionaries/02fill_multi_calc_val_multi/yml/00-base.yml b/tests/dictionaries_old/02fill_multi_calc_val_multi/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/02fill_multi_calc_val_multi/yml/00-base.yml
rename to tests/dictionaries_old/02fill_multi_calc_val_multi/yml/00-base.yml
diff --git a/tests/dictionaries_old/10autosave_hidden/00-base.xml b/tests/dictionaries_old/10autosave_hidden/00-base.xml
deleted file mode 100644
index f3248ec3f..000000000
--- a/tests/dictionaries_old/10autosave_hidden/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
-
-
- oui
- autosavevar
-
-
-
diff --git a/tests/dictionaries_old/10autosave_hidden/result/rougail/00-base.yml b/tests/dictionaries_old/10autosave_hidden/result/rougail/00-base.yml
new file mode 100644
index 000000000..a00889e96
--- /dev/null
+++ b/tests/dictionaries_old/10autosave_hidden/result/rougail/00-base.yml
@@ -0,0 +1,18 @@
+server_deployed:
+ type: boolean
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ autosavevar:
+ type: string
+ description: autosave variable
+ hidden: true
+ auto_save: true
+ default:
+ type: jinja
+ jinja: '{{ "oui" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10autosave_hidden/tiramisu/base.py b/tests/dictionaries_old/10autosave_hidden/tiramisu/base.py
index 6764b226c..7ec142734 100644
--- a/tests/dictionaries_old/10autosave_hidden/tiramisu/base.py
+++ b/tests/dictionaries_old/10autosave_hidden/tiramisu/base.py
@@ -1,19 +1,61 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func.calc_val, Params((ParamValue("oui")))), properties=frozenset({"basic", "force_store_value", "frozen", "hidden"}))
-option_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.autosavevar), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"basic", "force_store_value", "frozen", "hidden"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10autosave_hidden/tiramisu/multi.py b/tests/dictionaries_old/10autosave_hidden/tiramisu/multi.py
new file mode 100644
index 000000000..576f87cff
--- /dev/null
+++ b/tests/dictionaries_old/10autosave_hidden/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_1 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func.calc_val, Params((ParamValue("oui")))), properties=frozenset({"basic", "force_store_value", "frozen", "hidden"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"basic"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, optiondescription_2], properties=frozenset({"basic"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_5 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_8 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func.calc_val, Params((ParamValue("oui")))), properties=frozenset({"basic", "force_store_value", "frozen", "hidden"}))
+optiondescription_6 = OptionDescription(name="general", doc="général", children=[option_7, option_8], properties=frozenset({"basic"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[option_5, optiondescription_6], properties=frozenset({"basic"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10autosave_hidden/xml/00-base.xml b/tests/dictionaries_old/10autosave_hidden/xml/00-base.xml
new file mode 100644
index 000000000..23d47d401
--- /dev/null
+++ b/tests/dictionaries_old/10autosave_hidden/xml/00-base.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+ non
+
+
+
+
+
+
+ oui
+ autosavevar
+
+
+
diff --git a/tests/dictionaries/10autosave_hidden/yml/00-base.yml b/tests/dictionaries_old/10autosave_hidden/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10autosave_hidden/yml/00-base.yml
rename to tests/dictionaries_old/10autosave_hidden/yml/00-base.yml
diff --git a/tests/dictionaries/10check_base_target_optional/__init__.py b/tests/dictionaries_old/10base_certificate_list/__init__.py
similarity index 100%
rename from tests/dictionaries/10check_base_target_optional/__init__.py
rename to tests/dictionaries_old/10base_certificate_list/__init__.py
diff --git a/tests/dictionaries/10base_certificate_list/makedict/after.json b/tests/dictionaries_old/10base_certificate_list/makedict/after.json
similarity index 100%
rename from tests/dictionaries/10base_certificate_list/makedict/after.json
rename to tests/dictionaries_old/10base_certificate_list/makedict/after.json
diff --git a/tests/dictionaries/10base_certificate_list/makedict/base.json b/tests/dictionaries_old/10base_certificate_list/makedict/base.json
similarity index 100%
rename from tests/dictionaries/10base_certificate_list/makedict/base.json
rename to tests/dictionaries_old/10base_certificate_list/makedict/base.json
diff --git a/tests/dictionaries/10base_certificate_list/makedict/before.json b/tests/dictionaries_old/10base_certificate_list/makedict/before.json
similarity index 100%
rename from tests/dictionaries/10base_certificate_list/makedict/before.json
rename to tests/dictionaries_old/10base_certificate_list/makedict/before.json
diff --git a/tests/dictionaries_old/10base_certificate_list/result/rougail/00-base.yml b/tests/dictionaries_old/10base_certificate_list/result/rougail/00-base.yml
new file mode 100644
index 000000000..4b7a0ceb7
--- /dev/null
+++ b/tests/dictionaries_old/10base_certificate_list/result/rougail/00-base.yml
@@ -0,0 +1,4 @@
+server_name:
+ type: domainname
+ default: example.net
+version: '1.0'
diff --git a/tests/dictionaries_old/10base_certificate_list/result/services/00-base.yml b/tests/dictionaries_old/10base_certificate_list/result/services/00-base.yml
new file mode 100644
index 000000000..9b0a63501
--- /dev/null
+++ b/tests/dictionaries_old/10base_certificate_list/result/services/00-base.yml
@@ -0,0 +1,10 @@
+test.service:
+ certificates:
+ certificate:
+ authority: authority
+ owner: example
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.server_name == "example1.net" %}true{% else %}false{%
+ endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10base_certificate_list/tiramisu/base.py b/tests/dictionaries_old/10base_certificate_list/tiramisu/base.py
new file mode 100644
index 000000000..6f8c9c283
--- /dev/null
+++ b/tests/dictionaries_old/10base_certificate_list/tiramisu/base.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="name", doc="name", default="certificate")
+option_8 = UsernameOption(name="owner", doc="owner", default="example")
+option_9 = SymLinkOption(name="domain", opt=option_2)
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_6 = OptionDescription(name="certificate", doc="certificate", children=[option_7, option_8, option_9, option_10])
+optiondescription_6.impl_set_information('authority', "authority")
+optiondescription_6.impl_set_information('format', "cert_key")
+optiondescription_6.impl_set_information('type', "client")
+optiondescription_5 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_6])
+option_11 = BoolOption(name="activate", doc="activate", default=True)
+option_12 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_4 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_5, option_11, option_12])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/10base_certificate_list/tiramisu/multi.py b/tests/dictionaries_old/10base_certificate_list/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/10base_certificate_list/tiramisu/multi.py
rename to tests/dictionaries_old/10base_certificate_list/tiramisu/multi.py
diff --git a/tests/dictionaries/10base_certificate_list/xml/00-base.xml b/tests/dictionaries_old/10base_certificate_list/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/10base_certificate_list/xml/00-base.xml
rename to tests/dictionaries_old/10base_certificate_list/xml/00-base.xml
diff --git a/tests/dictionaries/10base_certificate_list/yml/00-base.yml b/tests/dictionaries_old/10base_certificate_list/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10base_certificate_list/yml/00-base.yml
rename to tests/dictionaries_old/10base_certificate_list/yml/00-base.yml
diff --git a/tests/dictionaries/10check_option/__init__.py b/tests/dictionaries_old/10base_certificate_list_disabled/__init__.py
similarity index 100%
rename from tests/dictionaries/10check_option/__init__.py
rename to tests/dictionaries_old/10base_certificate_list_disabled/__init__.py
diff --git a/tests/dictionaries/10base_certificate_list_disabled/makedict/after.json b/tests/dictionaries_old/10base_certificate_list_disabled/makedict/after.json
similarity index 100%
rename from tests/dictionaries/10base_certificate_list_disabled/makedict/after.json
rename to tests/dictionaries_old/10base_certificate_list_disabled/makedict/after.json
diff --git a/tests/dictionaries/10base_certificate_list_disabled/makedict/base.json b/tests/dictionaries_old/10base_certificate_list_disabled/makedict/base.json
similarity index 100%
rename from tests/dictionaries/10base_certificate_list_disabled/makedict/base.json
rename to tests/dictionaries_old/10base_certificate_list_disabled/makedict/base.json
diff --git a/tests/dictionaries/10base_certificate_list_disabled/makedict/before.json b/tests/dictionaries_old/10base_certificate_list_disabled/makedict/before.json
similarity index 100%
rename from tests/dictionaries/10base_certificate_list_disabled/makedict/before.json
rename to tests/dictionaries_old/10base_certificate_list_disabled/makedict/before.json
diff --git a/tests/dictionaries_old/10base_certificate_list_disabled/result/rougail/00-base.yml b/tests/dictionaries_old/10base_certificate_list_disabled/result/rougail/00-base.yml
new file mode 100644
index 000000000..4b7a0ceb7
--- /dev/null
+++ b/tests/dictionaries_old/10base_certificate_list_disabled/result/rougail/00-base.yml
@@ -0,0 +1,4 @@
+server_name:
+ type: domainname
+ default: example.net
+version: '1.0'
diff --git a/tests/dictionaries_old/10base_certificate_list_disabled/result/services/00-base.yml b/tests/dictionaries_old/10base_certificate_list_disabled/result/services/00-base.yml
new file mode 100644
index 000000000..05e64c002
--- /dev/null
+++ b/tests/dictionaries_old/10base_certificate_list_disabled/result/services/00-base.yml
@@ -0,0 +1,10 @@
+test.service:
+ certificates:
+ certificate:
+ authority: authority
+ owner: example
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.server_name == "example.net" %}true{% else %}false{%
+ endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10base_certificate_list_disabled/tiramisu/base.py b/tests/dictionaries_old/10base_certificate_list_disabled/tiramisu/base.py
new file mode 100644
index 000000000..6f8c9c283
--- /dev/null
+++ b/tests/dictionaries_old/10base_certificate_list_disabled/tiramisu/base.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="name", doc="name", default="certificate")
+option_8 = UsernameOption(name="owner", doc="owner", default="example")
+option_9 = SymLinkOption(name="domain", opt=option_2)
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_6 = OptionDescription(name="certificate", doc="certificate", children=[option_7, option_8, option_9, option_10])
+optiondescription_6.impl_set_information('authority', "authority")
+optiondescription_6.impl_set_information('format', "cert_key")
+optiondescription_6.impl_set_information('type', "client")
+optiondescription_5 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_6])
+option_11 = BoolOption(name="activate", doc="activate", default=True)
+option_12 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_4 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_5, option_11, option_12])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/10base_certificate_list_disabled/tiramisu/multi.py b/tests/dictionaries_old/10base_certificate_list_disabled/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/10base_certificate_list_disabled/tiramisu/multi.py
rename to tests/dictionaries_old/10base_certificate_list_disabled/tiramisu/multi.py
diff --git a/tests/dictionaries/10base_certificate_list_disabled/xml/00-base.xml b/tests/dictionaries_old/10base_certificate_list_disabled/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/10base_certificate_list_disabled/xml/00-base.xml
rename to tests/dictionaries_old/10base_certificate_list_disabled/xml/00-base.xml
diff --git a/tests/dictionaries/10base_certificate_list_disabled/yml/00-base.yml b/tests/dictionaries_old/10base_certificate_list_disabled/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10base_certificate_list_disabled/yml/00-base.yml
rename to tests/dictionaries_old/10base_certificate_list_disabled/yml/00-base.yml
diff --git a/tests/dictionaries_old/10check_base/00-base.xml b/tests/dictionaries_old/10check_base/00-base.xml
deleted file mode 100644
index ca0c88032..000000000
--- a/tests/dictionaries_old/10check_base/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- b
-
-
-
-
-
-
- 0
- 100
- int
-
-
-
diff --git a/tests/dictionaries_old/10check_base/result/rougail/00-base.yml b/tests/dictionaries_old/10check_base/result/rougail/00-base.yml
new file mode 100644
index 000000000..3587ccd77
--- /dev/null
+++ b/tests/dictionaries_old/10check_base/result/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ int:
+ type: number
+ description: No change
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.int | valid_entier(mini=0, maxi=100) }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_base/tiramisu/base.py b/tests/dictionaries_old/10check_base/tiramisu/base.py
index 00697a265..376a1382b 100644
--- a/tests/dictionaries_old/10check_base/tiramisu/base.py
+++ b/tests/dictionaries_old/10check_base/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
-option_4 = IntOption(name="int", doc="No change", min_number=0, max_number=100, properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = IntOption(name="int", doc="No change", properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10check_base/tiramisu/multi.py b/tests/dictionaries_old/10check_base/tiramisu/multi.py
new file mode 100644
index 000000000..2bc20c94c
--- /dev/null
+++ b/tests/dictionaries_old/10check_base/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_3 = IntOption(name="int", doc="No change", min_number=0, max_number=100, properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_6 = IntOption(name="int", doc="No change", min_number=0, max_number=100, properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/10check_base/xml/00-base.xml b/tests/dictionaries_old/10check_base/xml/00-base.xml
new file mode 100644
index 000000000..a163cee3a
--- /dev/null
+++ b/tests/dictionaries_old/10check_base/xml/00-base.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ b
+
+
+
+
+
+
+ 0
+ 100
+ int
+
+
+
diff --git a/tests/dictionaries/10check_base/yml/00-base.yml b/tests/dictionaries_old/10check_base/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10check_base/yml/00-base.yml
rename to tests/dictionaries_old/10check_base/yml/00-base.yml
diff --git a/tests/dictionaries_old/10check_base_target_optional/00-base.xml b/tests/dictionaries_old/10check_base_target_optional/00-base.xml
deleted file mode 100644
index ff050721b..000000000
--- a/tests/dictionaries_old/10check_base_target_optional/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
- 0
- 100
- int
-
-
-
diff --git a/tests/dictionaries_old/10check_base_target_optional/result/rougail/00-base.yml b/tests/dictionaries_old/10check_base_target_optional/result/rougail/00-base.yml
new file mode 100644
index 000000000..e5a393622
--- /dev/null
+++ b/tests/dictionaries_old/10check_base_target_optional/result/rougail/00-base.yml
@@ -0,0 +1,3 @@
+my_variable:
+ type: string
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_base_target_optional/tiramisu/base.py b/tests/dictionaries_old/10check_base_target_optional/tiramisu/base.py
index 342862113..8267ca2f8 100644
--- a/tests/dictionaries_old/10check_base_target_optional/tiramisu/base.py
+++ b/tests/dictionaries_old/10check_base_target_optional/tiramisu/base.py
@@ -1,16 +1,28 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_base_target_optional/tiramisu/multi.py b/tests/dictionaries_old/10check_base_target_optional/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/10check_base_target_optional/tiramisu/multi.py
rename to tests/dictionaries_old/10check_base_target_optional/tiramisu/multi.py
diff --git a/tests/dictionaries_old/10check_base_target_optional/xml/00-base.xml b/tests/dictionaries_old/10check_base_target_optional/xml/00-base.xml
new file mode 100644
index 000000000..be6d5b08a
--- /dev/null
+++ b/tests/dictionaries_old/10check_base_target_optional/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+ 0
+ 100
+ int
+
+
+
diff --git a/tests/dictionaries/10check_base_target_optional/yml/00-base.yml b/tests/dictionaries_old/10check_base_target_optional/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10check_base_target_optional/yml/00-base.yml
rename to tests/dictionaries_old/10check_base_target_optional/yml/00-base.yml
diff --git a/tests/dictionaries_old/10check_no_param/00-base.xml b/tests/dictionaries_old/10check_no_param/00-base.xml
deleted file mode 100644
index dbc7ff3d5..000000000
--- a/tests/dictionaries_old/10check_no_param/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- b
-
-
-
-
-
-
- int
-
-
-
diff --git a/tests/dictionaries_old/10check_no_param/result/rougail/00-base.yml b/tests/dictionaries_old/10check_no_param/result/rougail/00-base.yml
new file mode 100644
index 000000000..28424db50
--- /dev/null
+++ b/tests/dictionaries_old/10check_no_param/result/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ int:
+ type: number
+ description: No change
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.int | valid_lower }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_no_param/tiramisu/base.py b/tests/dictionaries_old/10check_no_param/tiramisu/base.py
index f2a066cca..376a1382b 100644
--- a/tests/dictionaries_old/10check_no_param/tiramisu/base.py
+++ b/tests/dictionaries_old/10check_no_param/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
-option_4 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_lower, Params((ParamSelfOption(whole=False))), warnings_only=False)], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = IntOption(name="int", doc="No change", properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10check_no_param/tiramisu/multi.py b/tests/dictionaries_old/10check_no_param/tiramisu/multi.py
new file mode 100644
index 000000000..b589b1a4e
--- /dev/null
+++ b/tests/dictionaries_old/10check_no_param/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_3 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_lower, Params((ParamSelfOption(whole=False))), warnings_only=False)], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_6 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_lower, Params((ParamSelfOption(whole=False))), warnings_only=False)], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/10check_no_param/xml/00-base.xml b/tests/dictionaries_old/10check_no_param/xml/00-base.xml
new file mode 100644
index 000000000..1def8eb47
--- /dev/null
+++ b/tests/dictionaries_old/10check_no_param/xml/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ b
+
+
+
+
+
+
+ int
+
+
+
diff --git a/tests/dictionaries/10check_no_param/yml/00-base.yml b/tests/dictionaries_old/10check_no_param/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10check_no_param/yml/00-base.yml
rename to tests/dictionaries_old/10check_no_param/yml/00-base.yml
diff --git a/tests/dictionaries_old/10check_option/00-base.xml b/tests/dictionaries_old/10check_option/00-base.xml
deleted file mode 100644
index 90decd5f9..000000000
--- a/tests/dictionaries_old/10check_option/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- b
-
-
- 100
-
-
-
-
-
-
- 0
- int2
- int
-
-
-
diff --git a/tests/dictionaries_old/10check_option/result/rougail/00-base.yml b/tests/dictionaries_old/10check_option/result/rougail/00-base.yml
new file mode 100644
index 000000000..d27425e61
--- /dev/null
+++ b/tests/dictionaries_old/10check_option/result/rougail/00-base.yml
@@ -0,0 +1,17 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ int2:
+ type: number
+ description: No change
+ default: 100
+ int:
+ type: number
+ description: No change
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.int | valid_lower(mini=0, maxi=rougail.general.int2)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_option/tiramisu/base.py b/tests/dictionaries_old/10check_option/tiramisu/base.py
index a8ac7b010..1f2125863 100644
--- a/tests/dictionaries_old/10check_option/tiramisu/base.py
+++ b/tests/dictionaries_old/10check_option/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
option_4 = IntOption(name="int2", doc="No change", default=100, properties=frozenset({"mandatory", "normal"}))
-option_5 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_lower, Params((ParamSelfOption(whole=False)), kwargs={'mini': ParamValue(0), 'maxi': ParamOption(option_4)}), warnings_only=False)], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = IntOption(name="int", doc="No change", properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10check_option/tiramisu/multi.py b/tests/dictionaries_old/10check_option/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/10check_option/tiramisu/multi.py
rename to tests/dictionaries_old/10check_option/tiramisu/multi.py
diff --git a/tests/dictionaries/10check_option/xml/00-base.xml b/tests/dictionaries_old/10check_option/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/10check_option/xml/00-base.xml
rename to tests/dictionaries_old/10check_option/xml/00-base.xml
diff --git a/tests/dictionaries/10check_option/yml/00-base.yml b/tests/dictionaries_old/10check_option/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10check_option/yml/00-base.yml
rename to tests/dictionaries_old/10check_option/yml/00-base.yml
diff --git a/tests/dictionaries_old/10check_optional/00-base.xml b/tests/dictionaries_old/10check_optional/00-base.xml
deleted file mode 100644
index 2492a5b8d..000000000
--- a/tests/dictionaries_old/10check_optional/00-base.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
- b
-
-
-
-
-
-
-
- int2
- int
-
-
- int3
- int
-
-
-
diff --git a/tests/dictionaries_old/10check_optional/result/rougail/00-base.yml b/tests/dictionaries_old/10check_optional/result/rougail/00-base.yml
new file mode 100644
index 000000000..12fe1ffce
--- /dev/null
+++ b/tests/dictionaries_old/10check_optional/result/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: b
+ int:
+ type: number
+ description: No change
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.int | valid_differ(rougail.general.int2) }}'
+ params:
+ rougail.general.int2:
+ type: variable
+ variable: rougail.general.int2
+ optional: true
+ - type: jinja
+ jinja: '{{ rougail.general.int | valid_differ(__int3) }}'
+ params:
+ __int3:
+ type: variable
+ variable: __int3
+ optional: true
+ int2:
+ type: number
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_optional/tiramisu/base.py b/tests/dictionaries_old/10check_optional/tiramisu/base.py
index 4ec01c549..d5cf5fc25 100644
--- a/tests/dictionaries_old/10check_optional/tiramisu/base.py
+++ b/tests/dictionaries_old/10check_optional/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_4 = IntOption(name="int", doc="No change", properties=frozenset({"normal"}))
option_5 = IntOption(name="int2", doc="No change", properties=frozenset({"normal"}))
-option_4 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_5))), warnings_only=False)], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10check_optional/tiramisu/multi.py b/tests/dictionaries_old/10check_optional/tiramisu/multi.py
new file mode 100644
index 000000000..21c6c207d
--- /dev/null
+++ b/tests/dictionaries_old/10check_optional/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_4 = IntOption(name="int2", doc="No change", properties=frozenset({"normal"}))
+option_3 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False)], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"}))
+option_8 = IntOption(name="int2", doc="No change", properties=frozenset({"normal"}))
+option_7 = IntOption(name="int", doc="No change", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_8))), warnings_only=False)], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10check_optional/xml/00-base.xml b/tests/dictionaries_old/10check_optional/xml/00-base.xml
new file mode 100644
index 000000000..a4b36485e
--- /dev/null
+++ b/tests/dictionaries_old/10check_optional/xml/00-base.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ b
+
+
+
+
+
+
+
+ int2
+ int
+
+
+ int3
+ int
+
+
+
diff --git a/tests/dictionaries/10check_optional/yml/00-base.yml b/tests/dictionaries_old/10check_optional/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10check_optional/yml/00-base.yml
rename to tests/dictionaries_old/10check_optional/yml/00-base.yml
diff --git a/tests/dictionaries_old/10check_valid_differ/00-base.xml b/tests/dictionaries_old/10check_valid_differ/00-base.xml
deleted file mode 100644
index 66c5cdb25..000000000
--- a/tests/dictionaries_old/10check_valid_differ/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- oui
-
-
- non
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/10check_valid_differ/result/rougail/00-base.yml b/tests/dictionaries_old/10check_valid_differ/result/rougail/00-base.yml
new file mode 100644
index 000000000..1de6670b5
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ/result/rougail/00-base.yml
@@ -0,0 +1,14 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif | valid_differ(rougail.general.mode_conteneur_actif1)
+ }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_valid_differ/tiramisu/base.py b/tests/dictionaries_old/10check_valid_differ/tiramisu/base.py
index 8f47e7326..cdf8d7866 100644
--- a/tests/dictionaries_old/10check_valid_differ/tiramisu/base.py
+++ b/tests/dictionaries_old/10check_valid_differ/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10check_valid_differ/tiramisu/multi.py b/tests/dictionaries_old/10check_valid_differ/tiramisu/multi.py
new file mode 100644
index 000000000..76758ad99
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_6))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/10check_valid_differ/xml/00-base.xml b/tests/dictionaries_old/10check_valid_differ/xml/00-base.xml
new file mode 100644
index 000000000..57da70df4
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ oui
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif1
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/10check_valid_differ/yml/00-base.yml b/tests/dictionaries_old/10check_valid_differ/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10check_valid_differ/yml/00-base.yml
rename to tests/dictionaries_old/10check_valid_differ/yml/00-base.yml
diff --git a/tests/dictionaries_old/10check_valid_differ_add/00-base.xml b/tests/dictionaries_old/10check_valid_differ_add/00-base.xml
deleted file mode 100644
index 8f7d0d622..000000000
--- a/tests/dictionaries_old/10check_valid_differ_add/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- oui
-
-
- non
-
-
- non
-
-
- oui
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif3
-
-
-
diff --git a/tests/dictionaries_old/10check_valid_differ_add/01-base.xml b/tests/dictionaries_old/10check_valid_differ_add/01-base.xml
deleted file mode 100644
index cb008e7c4..000000000
--- a/tests/dictionaries_old/10check_valid_differ_add/01-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif3
-
-
- mode_conteneur_actif2
- mode_conteneur_actif3
-
-
-
diff --git a/tests/dictionaries_old/10check_valid_differ_add/result/rougail/00-base.yml b/tests/dictionaries_old/10check_valid_differ_add/result/rougail/00-base.yml
new file mode 100644
index 000000000..b0a01db0d
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ_add/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ default: oui
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif3 | valid_differ(rougail.general.mode_conteneur_actif1)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_valid_differ_add/result/rougail/01-base.yml b/tests/dictionaries_old/10check_valid_differ_add/result/rougail/01-base.yml
new file mode 100644
index 000000000..f94328eae
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ_add/result/rougail/01-base.yml
@@ -0,0 +1,11 @@
+general:
+ mode_conteneur_actif3:
+ redefine: true
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1)
+ }}'
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_valid_differ_add/tiramisu/base.py b/tests/dictionaries_old/10check_valid_differ_add/tiramisu/base.py
index 257ad3aae..357dbb1a3 100644
--- a/tests/dictionaries_old/10check_valid_differ_add/tiramisu/base.py
+++ b/tests/dictionaries_old/10check_valid_differ_add/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_5))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10check_valid_differ_add/tiramisu/multi.py b/tests/dictionaries_old/10check_valid_differ_add/tiramisu/multi.py
new file mode 100644
index 000000000..de29aa266
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ_add/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_8))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_8))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_9))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7, option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/10check_valid_differ_add/xml/00-base.xml b/tests/dictionaries_old/10check_valid_differ_add/xml/00-base.xml
new file mode 100644
index 000000000..7ec67be01
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ_add/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ oui
+
+
+ non
+
+
+ non
+
+
+ oui
+
+
+
+
+
+ mode_conteneur_actif1
+ mode_conteneur_actif3
+
+
+
diff --git a/tests/dictionaries_old/10check_valid_differ_add/xml/01-base.xml b/tests/dictionaries_old/10check_valid_differ_add/xml/01-base.xml
new file mode 100644
index 000000000..91112ba4b
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ_add/xml/01-base.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+ mode_conteneur_actif1
+ mode_conteneur_actif3
+
+
+ mode_conteneur_actif2
+ mode_conteneur_actif3
+
+
+
diff --git a/tests/dictionaries/10check_valid_differ_add/yml/00-base.yml b/tests/dictionaries_old/10check_valid_differ_add/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10check_valid_differ_add/yml/00-base.yml
rename to tests/dictionaries_old/10check_valid_differ_add/yml/00-base.yml
diff --git a/tests/dictionaries/10check_valid_differ_add/yml/01-base.yml b/tests/dictionaries_old/10check_valid_differ_add/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/10check_valid_differ_add/yml/01-base.yml
rename to tests/dictionaries_old/10check_valid_differ_add/yml/01-base.yml
diff --git a/tests/dictionaries_old/10check_valid_differ_removecheck/00-base.xml b/tests/dictionaries_old/10check_valid_differ_removecheck/00-base.xml
deleted file mode 100644
index 8f7d0d622..000000000
--- a/tests/dictionaries_old/10check_valid_differ_removecheck/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- oui
-
-
- non
-
-
- non
-
-
- oui
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif3
-
-
-
diff --git a/tests/dictionaries_old/10check_valid_differ_removecheck/01-base.xml b/tests/dictionaries_old/10check_valid_differ_removecheck/01-base.xml
deleted file mode 100644
index f60d9d424..000000000
--- a/tests/dictionaries_old/10check_valid_differ_removecheck/01-base.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
- oui
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif3
-
-
- mode_conteneur_actif2
- mode_conteneur_actif3
-
-
-
diff --git a/tests/dictionaries_old/10check_valid_differ_removecheck/result/rougail/00-base.yml b/tests/dictionaries_old/10check_valid_differ_removecheck/result/rougail/00-base.yml
new file mode 100644
index 000000000..b0a01db0d
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ_removecheck/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ default: oui
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif3 | valid_differ(rougail.general.mode_conteneur_actif1)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_valid_differ_removecheck/result/rougail/01-base.yml b/tests/dictionaries_old/10check_valid_differ_removecheck/result/rougail/01-base.yml
new file mode 100644
index 000000000..d543b49dc
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ_removecheck/result/rougail/01-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif3:
+ redefine: true
+ default: oui
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1)
+ }}'
+ - type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_valid_differ_removecheck/tiramisu/base.py b/tests/dictionaries_old/10check_valid_differ_removecheck/tiramisu/base.py
index bcf76a244..357dbb1a3 100644
--- a/tests/dictionaries_old/10check_valid_differ_removecheck/tiramisu/base.py
+++ b/tests/dictionaries_old/10check_valid_differ_removecheck/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_5))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10check_valid_differ_removecheck/tiramisu/multi.py b/tests/dictionaries_old/10check_valid_differ_removecheck/tiramisu/multi.py
new file mode 100644
index 000000000..10b8fe33d
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ_removecheck/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif3", doc="No change", default="oui", validators=[Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_8))), warnings_only=False), Calculation(func.valid_differ, Params((ParamSelfOption(whole=False), ParamOption(option_9))), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7, option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/10check_valid_differ_removecheck/xml/00-base.xml b/tests/dictionaries_old/10check_valid_differ_removecheck/xml/00-base.xml
new file mode 100644
index 000000000..7ec67be01
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ_removecheck/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ oui
+
+
+ non
+
+
+ non
+
+
+ oui
+
+
+
+
+
+ mode_conteneur_actif1
+ mode_conteneur_actif3
+
+
+
diff --git a/tests/dictionaries_old/10check_valid_differ_removecheck/xml/01-base.xml b/tests/dictionaries_old/10check_valid_differ_removecheck/xml/01-base.xml
new file mode 100644
index 000000000..4dd70a09b
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_differ_removecheck/xml/01-base.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+ oui
+
+
+
+
+
+ mode_conteneur_actif1
+ mode_conteneur_actif3
+
+
+ mode_conteneur_actif2
+ mode_conteneur_actif3
+
+
+
diff --git a/tests/dictionaries/10check_valid_differ_removecheck/yml/00-base.yml b/tests/dictionaries_old/10check_valid_differ_removecheck/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10check_valid_differ_removecheck/yml/00-base.yml
rename to tests/dictionaries_old/10check_valid_differ_removecheck/yml/00-base.yml
diff --git a/tests/dictionaries/10check_valid_differ_removecheck/yml/01-base.yml b/tests/dictionaries_old/10check_valid_differ_removecheck/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/10check_valid_differ_removecheck/yml/01-base.yml
rename to tests/dictionaries_old/10check_valid_differ_removecheck/yml/01-base.yml
diff --git a/tests/dictionaries_old/10check_valid_in_network/00-base.xml b/tests/dictionaries_old/10check_valid_in_network/00-base.xml
deleted file mode 100644
index 5b807fc81..000000000
--- a/tests/dictionaries_old/10check_valid_in_network/00-base.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
- oui
-
-
-
-
-
-
-
-
- adresse_ip_eth0
- adresse_netmask_eth0
- adresse_ip
-
-
-
diff --git a/tests/dictionaries_old/10check_valid_in_network/result/rougail/00-base.yml b/tests/dictionaries_old/10check_valid_in_network/result/rougail/00-base.yml
new file mode 100644
index 000000000..361c52058
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_in_network/result/rougail/00-base.yml
@@ -0,0 +1,25 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ adresse_ip_eth0:
+ type: local_ip
+ description: Adresse IP de la carte
+ mandatory: true
+ mode: basic
+ adresse_netmask_eth0:
+ type: netmask
+ description: Masque de sous réseau de la carte
+ mandatory: true
+ mode: basic
+ adresse_ip:
+ type: local_ip
+ description: IP
+ mandatory: true
+ mode: basic
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0,
+ rougail.general.adresse_netmask_eth0) }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_valid_in_network/tiramisu/base.py b/tests/dictionaries_old/10check_valid_in_network/tiramisu/base.py
index 9d8340cec..5781eec41 100644
--- a/tests/dictionaries_old/10check_valid_in_network/tiramisu/base.py
+++ b/tests/dictionaries_old/10check_valid_in_network/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
option_4 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
option_5 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", properties=frozenset({"basic", "mandatory"}))
-option_6 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func.valid_in_network, Params((ParamSelfOption(whole=False), ParamOption(option_4), ParamOption(option_5))), warnings_only=True)], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_6 = IPOption(name="adresse_ip", doc="IP", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10check_valid_in_network/tiramisu/multi.py b/tests/dictionaries_old/10check_valid_in_network/tiramisu/multi.py
new file mode 100644
index 000000000..df162cf3d
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_in_network/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_3 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+option_4 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", properties=frozenset({"basic", "mandatory"}))
+option_5 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func.valid_in_network, Params((ParamSelfOption(whole=False), ParamOption(option_3), ParamOption(option_4))), warnings_only=True)], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_8 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+option_9 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", properties=frozenset({"basic", "mandatory"}))
+option_10 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func.valid_in_network, Params((ParamSelfOption(whole=False), ParamOption(option_8), ParamOption(option_9))), warnings_only=True)], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7, option_8, option_9, option_10], properties=frozenset({"basic"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"basic"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/10check_valid_in_network/xml/00-base.xml b/tests/dictionaries_old/10check_valid_in_network/xml/00-base.xml
new file mode 100644
index 000000000..20877efab
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_in_network/xml/00-base.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+ oui
+
+
+
+
+
+
+
+
+ adresse_ip_eth0
+ adresse_netmask_eth0
+ adresse_ip
+
+
+
diff --git a/tests/dictionaries/10check_valid_in_network/yml/00-base.yml b/tests/dictionaries_old/10check_valid_in_network/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10check_valid_in_network/yml/00-base.yml
rename to tests/dictionaries_old/10check_valid_in_network/yml/00-base.yml
diff --git a/tests/dictionaries_old/10check_valid_in_network_cidr/00-base.xml b/tests/dictionaries_old/10check_valid_in_network_cidr/00-base.xml
deleted file mode 100644
index b46fc733e..000000000
--- a/tests/dictionaries_old/10check_valid_in_network_cidr/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- oui
-
-
-
-
-
-
-
- adresse_ip_eth0
- adresse_ip
-
-
-
diff --git a/tests/dictionaries_old/10check_valid_in_network_cidr/result/rougail/00-base.yml b/tests/dictionaries_old/10check_valid_in_network_cidr/result/rougail/00-base.yml
new file mode 100644
index 000000000..3b7068f3f
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_in_network_cidr/result/rougail/00-base.yml
@@ -0,0 +1,20 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ adresse_ip_eth0:
+ type: cidr
+ description: Adresse IP de la carte
+ mandatory: true
+ mode: basic
+ adresse_ip:
+ type: local_ip
+ description: IP
+ mandatory: true
+ mode: basic
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_valid_in_network_cidr/tiramisu/base.py b/tests/dictionaries_old/10check_valid_in_network_cidr/tiramisu/base.py
index 1028c9b85..4a657b5b4 100644
--- a/tests/dictionaries_old/10check_valid_in_network_cidr/tiramisu/base.py
+++ b/tests/dictionaries_old/10check_valid_in_network_cidr/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
option_4 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", cidr=True, properties=frozenset({"basic", "mandatory"}))
-option_5 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func.valid_in_network, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=True)], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = IPOption(name="adresse_ip", doc="IP", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10check_valid_in_network_cidr/tiramisu/multi.py b/tests/dictionaries_old/10check_valid_in_network_cidr/tiramisu/multi.py
new file mode 100644
index 000000000..b11b4c7ef
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_in_network_cidr/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_3 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", cidr=True, properties=frozenset({"basic", "mandatory"}))
+option_4 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func.valid_in_network, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=True)], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"basic"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_7 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", cidr=True, properties=frozenset({"basic", "mandatory"}))
+option_8 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func.valid_in_network, Params((ParamSelfOption(whole=False), ParamOption(option_7))), warnings_only=True)], private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"basic"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"basic"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10check_valid_in_network_cidr/xml/00-base.xml b/tests/dictionaries_old/10check_valid_in_network_cidr/xml/00-base.xml
new file mode 100644
index 000000000..e9d4d8daf
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_in_network_cidr/xml/00-base.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ oui
+
+
+
+
+
+
+
+ adresse_ip_eth0
+ adresse_ip
+
+
+
diff --git a/tests/dictionaries/10check_valid_in_network_cidr/yml/00-base.yml b/tests/dictionaries_old/10check_valid_in_network_cidr/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10check_valid_in_network_cidr/yml/00-base.yml
rename to tests/dictionaries_old/10check_valid_in_network_cidr/yml/00-base.yml
diff --git a/tests/dictionaries_old/10check_valid_ipnetmask/00-base.xml b/tests/dictionaries_old/10check_valid_ipnetmask/00-base.xml
deleted file mode 100644
index 62e76c062..000000000
--- a/tests/dictionaries_old/10check_valid_ipnetmask/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- oui
-
-
-
-
-
-
-
- adresse_ip_eth0
- adresse_netmask_eth0
-
-
-
diff --git a/tests/dictionaries_old/10check_valid_ipnetmask/result/rougail/00-base.yml b/tests/dictionaries_old/10check_valid_ipnetmask/result/rougail/00-base.yml
new file mode 100644
index 000000000..32a6e15c8
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_ipnetmask/result/rougail/00-base.yml
@@ -0,0 +1,20 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ adresse_ip_eth0:
+ type: local_ip
+ description: Adresse IP de la carte
+ mandatory: true
+ mode: basic
+ adresse_netmask_eth0:
+ type: netmask
+ description: Masque de sous réseau de la carte
+ mandatory: true
+ mode: basic
+ validators:
+ - type: jinja
+ jinja: '{{ rougail.general.adresse_netmask_eth0 | valid_ipnetmask(rougail.general.adresse_ip_eth0)
+ }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_valid_ipnetmask/tiramisu/base.py b/tests/dictionaries_old/10check_valid_ipnetmask/tiramisu/base.py
index 23590ce31..6e07672db 100644
--- a/tests/dictionaries_old/10check_valid_ipnetmask/tiramisu/base.py
+++ b/tests/dictionaries_old/10check_valid_ipnetmask/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
option_4 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
-option_5 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", validators=[Calculation(func.valid_ipnetmask, Params((ParamSelfOption(whole=False), ParamOption(option_4))), warnings_only=True)], properties=frozenset({"basic", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", properties=frozenset({"basic", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10check_valid_ipnetmask/tiramisu/multi.py b/tests/dictionaries_old/10check_valid_ipnetmask/tiramisu/multi.py
new file mode 100644
index 000000000..98ebcbb07
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_ipnetmask/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_3 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+option_4 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", validators=[Calculation(func.valid_ipnetmask, Params((ParamSelfOption(whole=False), ParamOption(option_3))), warnings_only=True)], properties=frozenset({"basic", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"basic"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_7 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"}))
+option_8 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", validators=[Calculation(func.valid_ipnetmask, Params((ParamSelfOption(whole=False), ParamOption(option_7))), warnings_only=True)], properties=frozenset({"basic", "mandatory"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"basic"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"basic"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10check_valid_ipnetmask/xml/00-base.xml b/tests/dictionaries_old/10check_valid_ipnetmask/xml/00-base.xml
new file mode 100644
index 000000000..f6af8dac6
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_ipnetmask/xml/00-base.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ oui
+
+
+
+
+
+
+
+ adresse_ip_eth0
+ adresse_netmask_eth0
+
+
+
diff --git a/tests/dictionaries/10check_valid_ipnetmask/yml/00-base.yml b/tests/dictionaries_old/10check_valid_ipnetmask/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10check_valid_ipnetmask/yml/00-base.yml
rename to tests/dictionaries_old/10check_valid_ipnetmask/yml/00-base.yml
diff --git a/tests/dictionaries/10fill_information/__init__.py b/tests/dictionaries_old/10check_valid_jinja/__init__.py
similarity index 100%
rename from tests/dictionaries/10fill_information/__init__.py
rename to tests/dictionaries_old/10check_valid_jinja/__init__.py
diff --git a/tests/dictionaries_old/10check_valid_jinja/makedict/after.json b/tests/dictionaries_old/10check_valid_jinja/makedict/after.json
new file mode 100644
index 000000000..f0a909af9
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_jinja/makedict/after.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "oui"
+ },
+ "rougail.general.mode_conteneur_actif1": {
+ "owner": "default",
+ "value": "non"
+ }
+}
diff --git a/tests/dictionaries_old/10check_valid_jinja/makedict/base.json b/tests/dictionaries_old/10check_valid_jinja/makedict/base.json
new file mode 100644
index 000000000..a13f65aab
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_jinja/makedict/base.json
@@ -0,0 +1,4 @@
+{
+ "rougail.general.mode_conteneur_actif": "oui",
+ "rougail.general.mode_conteneur_actif1": "non"
+}
diff --git a/tests/dictionaries_old/10check_valid_jinja/makedict/before.json b/tests/dictionaries_old/10check_valid_jinja/makedict/before.json
new file mode 100644
index 000000000..f0a909af9
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_jinja/makedict/before.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "oui"
+ },
+ "rougail.general.mode_conteneur_actif1": {
+ "owner": "default",
+ "value": "non"
+ }
+}
diff --git a/tests/dictionaries_old/10check_valid_jinja/result/rougail/00-base.yml b/tests/dictionaries_old/10check_valid_jinja/result/rougail/00-base.yml
new file mode 100644
index 000000000..cabe34ba8
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_jinja/result/rougail/00-base.yml
@@ -0,0 +1,14 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: oui
+ validators:
+ - '{% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1
+ %}the value must be different than "{{ rougail.general.mode_conteneur_actif
+ }}"{% endif %}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/10check_valid_jinja/tiramisu/base.py b/tests/dictionaries_old/10check_valid_jinja/tiramisu/base.py
new file mode 100644
index 000000000..cdf8d7866
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_jinja/tiramisu/base.py
@@ -0,0 +1,30 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10check_valid_jinja/tiramisu/multi.py b/tests/dictionaries_old/10check_valid_jinja/tiramisu/multi.py
new file mode 100644
index 000000000..8074f62b9
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_jinja/tiramisu/multi.py
@@ -0,0 +1,67 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1 %}the value must be different than \"{{ rougail.general.mode_conteneur_actif }}\"{% endif %}"
+dict_env['2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1 %}the value must be different than \"{{ rougail.general.mode_conteneur_actif }}\"{% endif %}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func.valid_with_jinja, Params((ParamSelfOption(whole=False)), kwargs={'__internal_jinja': ParamValue("1.rougail.general.mode_conteneur_actif"), '__internal_key': ParamValue("rougail.general.mode_conteneur_actif"), 'rougail.general.mode_conteneur_actif1': ParamOption(option_3)}), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func.valid_with_jinja, Params((ParamSelfOption(whole=False)), kwargs={'__internal_jinja': ParamValue("2.rougail.general.mode_conteneur_actif"), '__internal_key': ParamValue("rougail.general.mode_conteneur_actif"), 'rougail.general.mode_conteneur_actif1': ParamOption(option_6)}), warnings_only=False)], properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/10check_valid_jinja/xml/00-base.xml b/tests/dictionaries_old/10check_valid_jinja/xml/00-base.xml
new file mode 100644
index 000000000..9638da061
--- /dev/null
+++ b/tests/dictionaries_old/10check_valid_jinja/xml/00-base.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ oui
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/10check_valid_jinja/yml/00-base.yml b/tests/dictionaries_old/10check_valid_jinja/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10check_valid_jinja/yml/00-base.yml
rename to tests/dictionaries_old/10check_valid_jinja/yml/00-base.yml
diff --git a/tests/dictionaries_old/10fill_information/00-base.xml b/tests/dictionaries_old/10fill_information/00-base.xml
deleted file mode 100644
index a8bdb0661..000000000
--- a/tests/dictionaries_old/10fill_information/00-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
- test_information
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/10fill_information/result/rougail/00-base.yml b/tests/dictionaries_old/10fill_information/result/rougail/00-base.yml
new file mode 100644
index 000000000..acbfb582c
--- /dev/null
+++ b/tests/dictionaries_old/10fill_information/result/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __information.test_information | calc_val }}'
+ params:
+ __information.test_information:
+ type: information
+ information: test_information
+version: '1.0'
diff --git a/tests/dictionaries_old/10fill_information/tiramisu/base.py b/tests/dictionaries_old/10fill_information/tiramisu/base.py
index a0e17c5e3..3d150d0e9 100644
--- a/tests/dictionaries_old/10fill_information/tiramisu/base.py
+++ b/tests/dictionaries_old/10fill_information/tiramisu/base.py
@@ -1,17 +1,59 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamInformation("test_information", None)))), properties=frozenset({"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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), '__information.test_information': ParamInformation("test_information", None)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10fill_information/tiramisu/multi.py b/tests/dictionaries_old/10fill_information/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/10fill_information/tiramisu/multi.py
rename to tests/dictionaries_old/10fill_information/tiramisu/multi.py
diff --git a/tests/dictionaries_old/10fill_information/xml/00-base.xml b/tests/dictionaries_old/10fill_information/xml/00-base.xml
new file mode 100644
index 000000000..50f64a02d
--- /dev/null
+++ b/tests/dictionaries_old/10fill_information/xml/00-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+ test_information
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/10fill_information/yml/00-base.yml b/tests/dictionaries_old/10fill_information/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10fill_information/yml/00-base.yml
rename to tests/dictionaries_old/10fill_information/yml/00-base.yml
diff --git a/tests/dictionaries/10fill_information_multi/__init__.py b/tests/dictionaries_old/10fill_information_multi/__init__.py
similarity index 100%
rename from tests/dictionaries/10fill_information_multi/__init__.py
rename to tests/dictionaries_old/10fill_information_multi/__init__.py
diff --git a/tests/dictionaries_old/10fill_information_multi/makedict/after.json b/tests/dictionaries_old/10fill_information_multi/makedict/after.json
new file mode 100644
index 000000000..07c72318b
--- /dev/null
+++ b/tests/dictionaries_old/10fill_information_multi/makedict/after.json
@@ -0,0 +1,8 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": [
+ "value"
+ ]
+ }
+}
diff --git a/tests/dictionaries_old/10fill_information_multi/makedict/base.json b/tests/dictionaries_old/10fill_information_multi/makedict/base.json
new file mode 100644
index 000000000..bc0f3f5dd
--- /dev/null
+++ b/tests/dictionaries_old/10fill_information_multi/makedict/base.json
@@ -0,0 +1,5 @@
+{
+ "rougail.general.mode_conteneur_actif": [
+ "value"
+ ]
+}
diff --git a/tests/dictionaries_old/10fill_information_multi/makedict/before.json b/tests/dictionaries_old/10fill_information_multi/makedict/before.json
new file mode 100644
index 000000000..07c72318b
--- /dev/null
+++ b/tests/dictionaries_old/10fill_information_multi/makedict/before.json
@@ -0,0 +1,8 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": [
+ "value"
+ ]
+ }
+}
diff --git a/tests/dictionaries_old/10fill_information_multi/result/rougail/00-base.yml b/tests/dictionaries_old/10fill_information_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..0753b5f61
--- /dev/null
+++ b/tests/dictionaries_old/10fill_information_multi/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ multi: true
+ default:
+ type: jinja
+ jinja: '{{ __information.test_information | calc_val }}'
+ params:
+ __information.test_information:
+ type: information
+ information: test_information
+version: '1.0'
diff --git a/tests/dictionaries_old/10fill_information_multi/tiramisu/base.py b/tests/dictionaries_old/10fill_information_multi/tiramisu/base.py
new file mode 100644
index 000000000..3fb58b905
--- /dev/null
+++ b/tests/dictionaries_old/10fill_information_multi/tiramisu/base.py
@@ -0,0 +1,59 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), '__information.test_information': ParamInformation("test_information", [])})), properties=frozenset({"normal", "notempty"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10fill_information_multi/tiramisu/multi.py b/tests/dictionaries_old/10fill_information_multi/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/10fill_information_multi/tiramisu/multi.py
rename to tests/dictionaries_old/10fill_information_multi/tiramisu/multi.py
diff --git a/tests/dictionaries_old/10fill_information_multi/xml/00-base.xml b/tests/dictionaries_old/10fill_information_multi/xml/00-base.xml
new file mode 100644
index 000000000..771525509
--- /dev/null
+++ b/tests/dictionaries_old/10fill_information_multi/xml/00-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+ test_information
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/10fill_information_multi/yml/00-base.yml b/tests/dictionaries_old/10fill_information_multi/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10fill_information_multi/yml/00-base.yml
rename to tests/dictionaries_old/10fill_information_multi/yml/00-base.yml
diff --git a/tests/dictionaries/10fill_option_information/__init__.py b/tests/dictionaries_old/10fill_option_information/__init__.py
similarity index 100%
rename from tests/dictionaries/10fill_option_information/__init__.py
rename to tests/dictionaries_old/10fill_option_information/__init__.py
diff --git a/tests/dictionaries_old/10fill_option_information/informations.json b/tests/dictionaries_old/10fill_option_information/informations.json
new file mode 100644
index 000000000..69510fc75
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_information/informations.json
@@ -0,0 +1 @@
+{"rougail.general.variable": "value"}
diff --git a/tests/dictionaries_old/10fill_option_information/makedict/after.json b/tests/dictionaries_old/10fill_option_information/makedict/after.json
new file mode 100644
index 000000000..7f08ef4fb
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_information/makedict/after.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.variable": {
+ "owner": "default",
+ "value": null
+ },
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "value"
+ }
+}
diff --git a/tests/dictionaries_old/10fill_option_information/makedict/base.json b/tests/dictionaries_old/10fill_option_information/makedict/base.json
new file mode 100644
index 000000000..bd4b110e3
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_information/makedict/base.json
@@ -0,0 +1,4 @@
+{
+ "rougail.general.variable": null,
+ "rougail.general.mode_conteneur_actif": "value"
+}
diff --git a/tests/dictionaries_old/10fill_option_information/makedict/before.json b/tests/dictionaries_old/10fill_option_information/makedict/before.json
new file mode 100644
index 000000000..7f08ef4fb
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_information/makedict/before.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.variable": {
+ "owner": "default",
+ "value": null
+ },
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "value"
+ }
+}
diff --git a/tests/dictionaries_old/10fill_option_information/result/rougail/00-base.yml b/tests/dictionaries_old/10fill_option_information/result/rougail/00-base.yml
new file mode 100644
index 000000000..3dd93a275
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_information/result/rougail/00-base.yml
@@ -0,0 +1,17 @@
+general:
+ variable:
+ type: string
+ description: No change
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __information.rougail.general.variable.test_information | calc_val
+ }}'
+ params:
+ __information.rougail.general.variable.test_information:
+ type: information
+ information: test_information
+ variable: rougail.general.variable
+version: '1.0'
diff --git a/tests/dictionaries_old/10fill_option_information/tiramisu/base.py b/tests/dictionaries_old/10fill_option_information/tiramisu/base.py
new file mode 100644
index 000000000..8f183ca34
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_information/tiramisu/base.py
@@ -0,0 +1,60 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.variable.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="variable", doc="No change", properties=frozenset({"normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), '__information.rougail.general.variable.test_information': ParamInformation("test_information", None)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10fill_option_information/tiramisu/multi.py b/tests/dictionaries_old/10fill_option_information/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/10fill_option_information/tiramisu/multi.py
rename to tests/dictionaries_old/10fill_option_information/tiramisu/multi.py
diff --git a/tests/dictionaries_old/10fill_option_information/xml/00-base.xml b/tests/dictionaries_old/10fill_option_information/xml/00-base.xml
new file mode 100644
index 000000000..dea77acb7
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_information/xml/00-base.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+ test_information
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/10fill_option_information/yml/00-base.yml b/tests/dictionaries_old/10fill_option_information/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10fill_option_information/yml/00-base.yml
rename to tests/dictionaries_old/10fill_option_information/yml/00-base.yml
diff --git a/tests/dictionaries/10fill_option_od_information/__init__.py b/tests/dictionaries_old/10fill_option_od_information/__init__.py
similarity index 100%
rename from tests/dictionaries/10fill_option_od_information/__init__.py
rename to tests/dictionaries_old/10fill_option_od_information/__init__.py
diff --git a/tests/dictionaries_old/10fill_option_od_information/informations.json b/tests/dictionaries_old/10fill_option_od_information/informations.json
new file mode 100644
index 000000000..8969341e5
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_od_information/informations.json
@@ -0,0 +1 @@
+{"rougail.general.od": "value"}
diff --git a/tests/dictionaries_old/10fill_option_od_information/makedict/after.json b/tests/dictionaries_old/10fill_option_od_information/makedict/after.json
new file mode 100644
index 000000000..ab35e5934
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_od_information/makedict/after.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": null
+ },
+ "rougail.general.od.variable": {
+ "owner": "default",
+ "value": null
+ }
+}
diff --git a/tests/dictionaries_old/10fill_option_od_information/makedict/base.json b/tests/dictionaries_old/10fill_option_od_information/makedict/base.json
new file mode 100644
index 000000000..2823ac4e3
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_od_information/makedict/base.json
@@ -0,0 +1,4 @@
+{
+ "rougail.general.mode_conteneur_actif": null,
+ "rougail.general.od.variable": null
+}
diff --git a/tests/dictionaries_old/10fill_option_od_information/makedict/before.json b/tests/dictionaries_old/10fill_option_od_information/makedict/before.json
new file mode 100644
index 000000000..ab35e5934
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_od_information/makedict/before.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": null
+ },
+ "rougail.general.od.variable": {
+ "owner": "default",
+ "value": null
+ }
+}
diff --git a/tests/dictionaries_old/10fill_option_od_information/result/rougail/00-base.yml b/tests/dictionaries_old/10fill_option_od_information/result/rougail/00-base.yml
new file mode 100644
index 000000000..c2c4f0a5f
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_od_information/result/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __information.rougail.general.od.variable.test_information | calc_val
+ }}'
+ params:
+ __information.rougail.general.od.variable.test_information:
+ type: information
+ information: test_information
+ variable: rougail.general.od.variable
+ od:
+ variable:
+ type: string
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries_old/10fill_option_od_information/tiramisu/base.py b/tests/dictionaries_old/10fill_option_od_information/tiramisu/base.py
new file mode 100644
index 000000000..c9d26f817
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_od_information/tiramisu/base.py
@@ -0,0 +1,61 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.od.variable.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), '__information.rougail.general.od.variable.test_information': ParamInformation("test_information", None)})), properties=frozenset({"normal"}))
+option_5 = StrOption(name="variable", doc="No change", properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="od", doc="od", children=[option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10fill_option_od_information/tiramisu/multi.py b/tests/dictionaries_old/10fill_option_od_information/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/10fill_option_od_information/tiramisu/multi.py
rename to tests/dictionaries_old/10fill_option_od_information/tiramisu/multi.py
diff --git a/tests/dictionaries_old/10fill_option_od_information/xml/00-base.xml b/tests/dictionaries_old/10fill_option_od_information/xml/00-base.xml
new file mode 100644
index 000000000..adfe0487c
--- /dev/null
+++ b/tests/dictionaries_old/10fill_option_od_information/xml/00-base.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ test_information
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/10fill_option_od_information/yml/00-base.yml b/tests/dictionaries_old/10fill_option_od_information/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10fill_option_od_information/yml/00-base.yml
rename to tests/dictionaries_old/10fill_option_od_information/yml/00-base.yml
diff --git a/tests/dictionaries/10load_frozenifin_noexist/__init__.py b/tests/dictionaries_old/10fill_target_information/__init__.py
similarity index 100%
rename from tests/dictionaries/10load_frozenifin_noexist/__init__.py
rename to tests/dictionaries_old/10fill_target_information/__init__.py
diff --git a/tests/dictionaries_old/10fill_target_information/informations.json b/tests/dictionaries_old/10fill_target_information/informations.json
new file mode 100644
index 000000000..5f62f349f
--- /dev/null
+++ b/tests/dictionaries_old/10fill_target_information/informations.json
@@ -0,0 +1 @@
+{"rougail.general.mode_conteneur_actif": "value"}
diff --git a/tests/dictionaries_old/10fill_target_information/makedict/after.json b/tests/dictionaries_old/10fill_target_information/makedict/after.json
new file mode 100644
index 000000000..6f4a21e7d
--- /dev/null
+++ b/tests/dictionaries_old/10fill_target_information/makedict/after.json
@@ -0,0 +1,6 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "value"
+ }
+}
diff --git a/tests/dictionaries_old/10fill_target_information/makedict/base.json b/tests/dictionaries_old/10fill_target_information/makedict/base.json
new file mode 100644
index 000000000..904ffb4eb
--- /dev/null
+++ b/tests/dictionaries_old/10fill_target_information/makedict/base.json
@@ -0,0 +1,3 @@
+{
+ "rougail.general.mode_conteneur_actif": "value"
+}
diff --git a/tests/dictionaries_old/10fill_target_information/makedict/before.json b/tests/dictionaries_old/10fill_target_information/makedict/before.json
new file mode 100644
index 000000000..6f4a21e7d
--- /dev/null
+++ b/tests/dictionaries_old/10fill_target_information/makedict/before.json
@@ -0,0 +1,6 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "value"
+ }
+}
diff --git a/tests/dictionaries_old/10fill_target_information/result/rougail/00-base.yml b/tests/dictionaries_old/10fill_target_information/result/rougail/00-base.yml
new file mode 100644
index 000000000..5d919c81c
--- /dev/null
+++ b/tests/dictionaries_old/10fill_target_information/result/rougail/00-base.yml
@@ -0,0 +1,14 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __information.rougail.general.mode_conteneur_actif.test_information
+ | calc_val }}'
+ params:
+ __information.rougail.general.mode_conteneur_actif.test_information:
+ type: information
+ information: test_information
+ variable: rougail.general.mode_conteneur_actif
+version: '1.0'
diff --git a/tests/dictionaries_old/10fill_target_information/tiramisu/base.py b/tests/dictionaries_old/10fill_target_information/tiramisu/base.py
new file mode 100644
index 000000000..298236974
--- /dev/null
+++ b/tests/dictionaries_old/10fill_target_information/tiramisu/base.py
@@ -0,0 +1,59 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.mode_conteneur_actif.test_information | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), '__information.rougail.general.mode_conteneur_actif.test_information': ParamInformation("test_information", None)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10fill_target_information/tiramisu/multi.py b/tests/dictionaries_old/10fill_target_information/tiramisu/multi.py
new file mode 100644
index 000000000..3504407b0
--- /dev/null
+++ b/tests/dictionaries_old/10fill_target_information/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamSelfInformation("test_information", None)))), properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamSelfInformation("test_information", None)))), properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/10fill_target_information/xml/00-base.xml b/tests/dictionaries_old/10fill_target_information/xml/00-base.xml
new file mode 100644
index 000000000..c79e7efad
--- /dev/null
+++ b/tests/dictionaries_old/10fill_target_information/xml/00-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+ test_information
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/10fill_target_information/yml/00-base.yml b/tests/dictionaries_old/10fill_target_information/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10fill_target_information/yml/00-base.yml
rename to tests/dictionaries_old/10fill_target_information/yml/00-base.yml
diff --git a/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/00-base.xml b/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/00-base.xml
deleted file mode 100644
index 96e87d8f3..000000000
--- a/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/00-base.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
- 1
- 2
- 3
- enumvar
-
-
- 4
- test_variable
-
-
-
diff --git a/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/result/rougail/00-base.yml b/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/result/rougail/00-base.yml
new file mode 100644
index 000000000..93c510a6e
--- /dev/null
+++ b/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/result/rougail/00-base.yml
@@ -0,0 +1,24 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: enumvar
+ help: bla bla bla
+ default: 1
+ choices:
+ - 1
+ - 2
+ - 3
+ test_variable:
+ type: number
+ description: test variable
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.enumfam.enumvar == "4" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/tiramisu/base.py b/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/tiramisu/base.py
index f0eaac427..3c59e6a82 100644
--- a/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/tiramisu/base.py
+++ b/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/tiramisu/base.py
@@ -1,21 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
option_5.impl_set_information('help', "bla bla bla")
option_6 = IntOption(name="test_variable", doc="test variable", properties=frozenset({"expert"}))
-option_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5, option_6], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5, option_6], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/tiramisu/multi.py b/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/tiramisu/multi.py
new file mode 100644
index 000000000..d2fc9d96f
--- /dev/null
+++ b/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_4 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
+option_4.impl_set_information('help', "bla bla bla")
+option_5 = IntOption(name="test_variable", doc="test variable", properties=frozenset({"expert"}))
+optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4, option_5], properties=frozenset({"expert"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7], properties=frozenset({"expert"}))
+option_9 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
+option_9.impl_set_information('help', "bla bla bla")
+option_10 = IntOption(name="test_variable", doc="test variable", properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="enumfam", doc="enumfam", children=[option_9, option_10], properties=frozenset({"expert"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6, optiondescription_8], properties=frozenset({"expert"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/xml/00-base.xml b/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/xml/00-base.xml
new file mode 100644
index 000000000..0080c9530
--- /dev/null
+++ b/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ non
+
+
+
+
+ 1
+ 2
+ 3
+ 1
+
+
+
+
+
+
+ 4
+ test_variable
+
+
+
diff --git a/tests/dictionaries/10frozenifin_unknown_valid_enum_number/yml/00-base.yml b/tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10frozenifin_unknown_valid_enum_number/yml/00-base.yml
rename to tests/dictionaries_old/10frozenifin_unknown_valid_enum_number/yml/00-base.yml
diff --git a/tests/dictionaries_old/10leadership_append/00-base.xml b/tests/dictionaries_old/10leadership_append/00-base.xml
deleted file mode 100644
index 2b7726a56..000000000
--- a/tests/dictionaries_old/10leadership_append/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10leadership_append/01-base.xml b/tests/dictionaries_old/10leadership_append/01-base.xml
deleted file mode 100644
index b271772bd..000000000
--- a/tests/dictionaries_old/10leadership_append/01-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
- follower3
-
-
-
diff --git a/tests/dictionaries_old/10leadership_append/makedict/after.json b/tests/dictionaries_old/10leadership_append/makedict/after.json
index 6dedaf65b..f7be8deb1 100644
--- a/tests/dictionaries_old/10leadership_append/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_append/makedict/after.json
@@ -6,17 +6,5 @@
"rougail.general1.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower2": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower3": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_append/makedict/before.json b/tests/dictionaries_old/10leadership_append/makedict/before.json
index 6dedaf65b..f7be8deb1 100644
--- a/tests/dictionaries_old/10leadership_append/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_append/makedict/before.json
@@ -6,17 +6,5 @@
"rougail.general1.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower2": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower3": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_append/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_append/result/rougail/00-base.yml
new file mode 100644
index 000000000..6e211d24a
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_append/result/rougail/01-base.yml b/tests/dictionaries_old/10leadership_append/result/rougail/01-base.yml
new file mode 100644
index 000000000..e83676a97
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append/result/rougail/01-base.yml
@@ -0,0 +1,6 @@
+general1:
+ leader:
+ follower3:
+ type: string
+ description: follower3
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_append/tiramisu/base.py b/tests/dictionaries_old/10leadership_append/tiramisu/base.py
index 270f8e9b2..2b7658f40 100644
--- a/tests/dictionaries_old/10leadership_append/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_append/tiramisu/base.py
@@ -1,23 +1,66 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True)
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_7)))), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leader.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leader.follower2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.general1.leader.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
option_9 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
-option_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8, option_9], properties=frozenset({"normal"}))
-option_4 = OptionDescription(name="general1", doc="general1", children=[option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_append/tiramisu/multi.py b/tests/dictionaries_old/10leadership_append/tiramisu/multi.py
new file mode 100644
index 000000000..a68afad4e
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append/tiramisu/multi.py
@@ -0,0 +1,46 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18])
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"normal"}))
+option_13 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_14 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_15 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_14)))), properties=frozenset({"normal"}))
+option_16 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
+optiondescription_12 = Leadership(name="leader", doc="leader", children=[option_13, option_14, option_15, option_16], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="general1", doc="general1", children=[optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_19 = OptionDescription(name="2", doc="2", children=[optiondescription_20])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_19])
diff --git a/tests/dictionaries_old/10leadership_append/xml/00-base.xml b/tests/dictionaries_old/10leadership_append/xml/00-base.xml
new file mode 100644
index 000000000..a3614dc10
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ follower1
+ follower2
+
+
+
diff --git a/tests/dictionaries_old/10leadership_append/xml/01-base.xml b/tests/dictionaries_old/10leadership_append/xml/01-base.xml
new file mode 100644
index 000000000..0e4f2acc2
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append/xml/01-base.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/10leadership_append/yml/00-base.yml b/tests/dictionaries_old/10leadership_append/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_append/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_append/yml/00-base.yml
diff --git a/tests/dictionaries/10leadership_append/yml/01-base.yml b/tests/dictionaries_old/10leadership_append/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_append/yml/01-base.yml
rename to tests/dictionaries_old/10leadership_append/yml/01-base.yml
diff --git a/tests/dictionaries_old/10leadership_append_hidden/00-base.xml b/tests/dictionaries_old/10leadership_append_hidden/00-base.xml
deleted file mode 100644
index 605a5b15c..000000000
--- a/tests/dictionaries_old/10leadership_append_hidden/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10leadership_append_hidden/01-base.xml b/tests/dictionaries_old/10leadership_append_hidden/01-base.xml
deleted file mode 100644
index b271772bd..000000000
--- a/tests/dictionaries_old/10leadership_append_hidden/01-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
- follower3
-
-
-
diff --git a/tests/dictionaries_old/10leadership_append_hidden/makedict/after.json b/tests/dictionaries_old/10leadership_append_hidden/makedict/after.json
index 6dedaf65b..f7be8deb1 100644
--- a/tests/dictionaries_old/10leadership_append_hidden/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_append_hidden/makedict/after.json
@@ -6,17 +6,5 @@
"rougail.general1.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower2": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower3": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_append_hidden/makedict/before.json b/tests/dictionaries_old/10leadership_append_hidden/makedict/before.json
index 6dedaf65b..f7be8deb1 100644
--- a/tests/dictionaries_old/10leadership_append_hidden/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_append_hidden/makedict/before.json
@@ -6,17 +6,5 @@
"rougail.general1.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower2": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower3": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_append_hidden/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_append_hidden/result/rougail/00-base.yml
new file mode 100644
index 000000000..5874dee18
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append_hidden/result/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ hidden: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_append_hidden/result/rougail/01-base.yml b/tests/dictionaries_old/10leadership_append_hidden/result/rougail/01-base.yml
new file mode 100644
index 000000000..e83676a97
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append_hidden/result/rougail/01-base.yml
@@ -0,0 +1,6 @@
+general1:
+ leader:
+ follower3:
+ type: string
+ description: follower3
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_append_hidden/tiramisu/base.py b/tests/dictionaries_old/10leadership_append_hidden/tiramisu/base.py
index fedc0d378..e75299a34 100644
--- a/tests/dictionaries_old/10leadership_append_hidden/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_append_hidden/tiramisu/base.py
@@ -1,23 +1,66 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen"}))
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_7)))), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leader.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leader.follower2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.general1.leader.follower1': ParamOption(option_7)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
option_9 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8, option_9], properties=frozenset({"hidden", "normal"}))
-option_4 = OptionDescription(name="general1", doc="general1", children=[option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8, option_9], properties=frozenset({"hidden", "normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_append_hidden/tiramisu/multi.py b/tests/dictionaries_old/10leadership_append_hidden/tiramisu/multi.py
new file mode 100644
index 000000000..c5b2855a1
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append_hidden/tiramisu/multi.py
@@ -0,0 +1,46 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_8 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7, option_8], properties=frozenset({"hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18])
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"normal"}))
+option_13 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_14 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_15 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_14)))), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_16 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_12 = Leadership(name="leader", doc="leader", children=[option_13, option_14, option_15, option_16], properties=frozenset({"hidden", "normal"}))
+optiondescription_11 = OptionDescription(name="general1", doc="general1", children=[optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_19 = OptionDescription(name="2", doc="2", children=[optiondescription_20])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_19])
diff --git a/tests/dictionaries_old/10leadership_append_hidden/xml/00-base.xml b/tests/dictionaries_old/10leadership_append_hidden/xml/00-base.xml
new file mode 100644
index 000000000..98e8723f9
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append_hidden/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ follower1
+ follower2
+
+
+
diff --git a/tests/dictionaries_old/10leadership_append_hidden/xml/01-base.xml b/tests/dictionaries_old/10leadership_append_hidden/xml/01-base.xml
new file mode 100644
index 000000000..0e4f2acc2
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append_hidden/xml/01-base.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/10leadership_append_hidden/yml/00-base.yml b/tests/dictionaries_old/10leadership_append_hidden/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_append_hidden/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_append_hidden/yml/00-base.yml
diff --git a/tests/dictionaries/10leadership_append_hidden/yml/01-base.yml b/tests/dictionaries_old/10leadership_append_hidden/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_append_hidden/yml/01-base.yml
rename to tests/dictionaries_old/10leadership_append_hidden/yml/01-base.yml
diff --git a/tests/dictionaries_old/10leadership_append_name/00-base.xml b/tests/dictionaries_old/10leadership_append_name/00-base.xml
deleted file mode 100644
index 8dc3f4417..000000000
--- a/tests/dictionaries_old/10leadership_append_name/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10leadership_append_name/01-base.xml b/tests/dictionaries_old/10leadership_append_name/01-base.xml
deleted file mode 100644
index da0327276..000000000
--- a/tests/dictionaries_old/10leadership_append_name/01-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
- follower3
-
-
-
diff --git a/tests/dictionaries_old/10leadership_append_name/makedict/after.json b/tests/dictionaries_old/10leadership_append_name/makedict/after.json
index 00346093d..c6fc9aeae 100644
--- a/tests/dictionaries_old/10leadership_append_name/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_append_name/makedict/after.json
@@ -6,17 +6,5 @@
"rougail.general1.leadership.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.leadership.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leadership.follower2": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leadership.follower3": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_append_name/makedict/before.json b/tests/dictionaries_old/10leadership_append_name/makedict/before.json
index 00346093d..c6fc9aeae 100644
--- a/tests/dictionaries_old/10leadership_append_name/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_append_name/makedict/before.json
@@ -6,17 +6,5 @@
"rougail.general1.leadership.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.leadership.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leadership.follower2": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leadership.follower3": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_append_name/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_append_name/result/rougail/00-base.yml
new file mode 100644
index 000000000..1421f3981
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append_name/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leadership:
+ description: leadership
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leadership.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_append_name/result/rougail/01-base.yml b/tests/dictionaries_old/10leadership_append_name/result/rougail/01-base.yml
new file mode 100644
index 000000000..788239085
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append_name/result/rougail/01-base.yml
@@ -0,0 +1,6 @@
+general1:
+ leadership:
+ follower3:
+ type: string
+ description: follower3
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_append_name/tiramisu/base.py b/tests/dictionaries_old/10leadership_append_name/tiramisu/base.py
index 89acb69ab..1ccb128e7 100644
--- a/tests/dictionaries_old/10leadership_append_name/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_append_name/tiramisu/base.py
@@ -1,23 +1,66 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general1.leadership.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['rougail.general1.leadership.follower2'] = "{{ rougail.general1.leadership.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True)
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_7)))), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leadership.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leadership.follower2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.general1.leadership.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
option_9 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
-option_5 = Leadership(name="leadership", doc="leadership", children=[option_6, option_7, option_8, option_9], properties=frozenset({"normal"}))
-option_4 = OptionDescription(name="general1", doc="general1", children=[option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_5 = Leadership(name="leadership", doc="leadership", children=[option_6, option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_append_name/tiramisu/multi.py b/tests/dictionaries_old/10leadership_append_name/tiramisu/multi.py
new file mode 100644
index 000000000..3839fdcd7
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append_name/tiramisu/multi.py
@@ -0,0 +1,46 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leadership", doc="leadership", children=[option_5, option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18])
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"normal"}))
+option_13 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_14 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_15 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_14)))), properties=frozenset({"normal"}))
+option_16 = StrOption(name="follower3", doc="follower3", multi=True, properties=frozenset({"normal"}))
+optiondescription_12 = Leadership(name="leadership", doc="leadership", children=[option_13, option_14, option_15, option_16], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="general1", doc="general1", children=[optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_19 = OptionDescription(name="2", doc="2", children=[optiondescription_20])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_19])
diff --git a/tests/dictionaries_old/10leadership_append_name/xml/00-base.xml b/tests/dictionaries_old/10leadership_append_name/xml/00-base.xml
new file mode 100644
index 000000000..303514f57
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append_name/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ follower1
+ follower2
+
+
+
diff --git a/tests/dictionaries_old/10leadership_append_name/xml/01-base.xml b/tests/dictionaries_old/10leadership_append_name/xml/01-base.xml
new file mode 100644
index 000000000..c3cd0cd24
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_append_name/xml/01-base.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/10leadership_append_name/yml/00-base.yml b/tests/dictionaries_old/10leadership_append_name/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_append_name/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_append_name/yml/00-base.yml
diff --git a/tests/dictionaries/10leadership_append_name/yml/01-base.yml b/tests/dictionaries_old/10leadership_append_name/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_append_name/yml/01-base.yml
rename to tests/dictionaries_old/10leadership_append_name/yml/01-base.yml
diff --git a/tests/dictionaries_old/10leadership_auto/00-base.xml b/tests/dictionaries_old/10leadership_auto/00-base.xml
deleted file mode 100644
index abdc42df6..000000000
--- a/tests/dictionaries_old/10leadership_auto/00-base.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- leader
- follower3
-
-
- follower1
- follower2
- follower3
-
-
-
diff --git a/tests/dictionaries_old/10leadership_auto/makedict/after.json b/tests/dictionaries_old/10leadership_auto/makedict/after.json
index 6810558b2..548ec3acc 100644
--- a/tests/dictionaries_old/10leadership_auto/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_auto/makedict/after.json
@@ -6,17 +6,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower3": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_auto/makedict/before.json b/tests/dictionaries_old/10leadership_auto/makedict/before.json
index 6810558b2..548ec3acc 100644
--- a/tests/dictionaries_old/10leadership_auto/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_auto/makedict/before.json
@@ -6,17 +6,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower3": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_auto/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_auto/result/rougail/00-base.yml
new file mode 100644
index 000000000..c927a0fe8
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_auto/result/rougail/00-base.yml
@@ -0,0 +1,34 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.leader.follower1 | calc_val }}'
+ follower3:
+ type: string
+ description: follower3
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.leader.leader | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_auto/tiramisu/base.py b/tests/dictionaries_old/10leadership_auto/tiramisu/base.py
index 9cad932ef..8fd5b0d29 100644
--- a/tests/dictionaries_old/10leadership_auto/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_auto/tiramisu/base.py
@@ -1,22 +1,66 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}"
+dict_env['rougail.general.leader.follower3'] = "{{ rougail.general.leader.leader | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True)
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_8 = StrOption(name="follower3", doc="follower3", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_5)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7, option_8], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.leader.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.leader.follower2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.general.leader.follower1': ParamOption(option_6)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_8 = StrOption(name="follower3", doc="follower3", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.leader.follower3), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.general.leader.leader': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_auto/tiramisu/multi.py b/tests/dictionaries_old/10leadership_auto/tiramisu/multi.py
new file mode 100644
index 000000000..633dab09c
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_auto/tiramisu/multi.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_5 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_6 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_5)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_7 = StrOption(name="follower3", doc="follower3", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_12 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_13 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_12)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_14 = StrOption(name="follower3", doc="follower3", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_11)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_10 = Leadership(name="leader", doc="leader", children=[option_11, option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
diff --git a/tests/dictionaries_old/10leadership_auto/xml/00-base.xml b/tests/dictionaries_old/10leadership_auto/xml/00-base.xml
new file mode 100644
index 000000000..ac6be61ae
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_auto/xml/00-base.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ follower1
+ follower2
+
+
+ leader
+ follower3
+
+
+
diff --git a/tests/dictionaries/10leadership_auto/yml/00-base.yml b/tests/dictionaries_old/10leadership_auto/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_auto/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_auto/yml/00-base.yml
diff --git a/tests/dictionaries_old/10leadership_auto_index/00-base.xml b/tests/dictionaries_old/10leadership_auto_index/00-base.xml
deleted file mode 100644
index cd8979cb0..000000000
--- a/tests/dictionaries_old/10leadership_auto_index/00-base.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- a
- b
- c
-
-
-
-
-
-
- follower1
-
-
- follower1
-
-
-
diff --git a/tests/dictionaries_old/10leadership_auto_index/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_auto_index/result/rougail/00-base.yml
new file mode 100644
index 000000000..8ea6e58fb
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_auto_index/result/rougail/00-base.yml
@@ -0,0 +1,18 @@
+leader:
+ description: leader
+ type: leadership
+ leader:
+ multi: true
+ default:
+ - a
+ - b
+ - c
+ follower1:
+ type: number
+ default:
+ type: jinja
+ jinja: '{{ __index | calc_val }}'
+ params:
+ __index:
+ type: index
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_auto_index/tiramisu/base.py b/tests/dictionaries_old/10leadership_auto_index/tiramisu/base.py
index 0a04311a9..2f5555562 100644
--- a/tests/dictionaries_old/10leadership_auto_index/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_auto_index/tiramisu/base.py
@@ -1,18 +1,60 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b', 'c'], properties=frozenset({"mandatory"}))
-option_4 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((ParamIndex()))), properties=frozenset({"normal"}))
-option_2 = Leadership(name="leader", doc="leader", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.leader.follower1'] = "{{ __index | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b', 'c'], properties=frozenset({"mandatory", "normal"}))
+option_4 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.leader.follower1), '__internal_type': ParamValue(number), '__internal_multi': ParamValue(True), '__index': ParamIndex()})), properties=frozenset({"normal"}))
+optiondescription_2 = Leadership(name="leader", doc="leader", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_auto_index/tiramisu/multi.py b/tests/dictionaries_old/10leadership_auto_index/tiramisu/multi.py
new file mode 100644
index 000000000..4db93c5c6
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_auto_index/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b', 'c'], properties=frozenset({"mandatory", "normal"}))
+option_3 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((ParamIndex()))), properties=frozenset({"normal"}))
+optiondescription_1 = Leadership(name="leader", doc="leader", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b', 'c'], properties=frozenset({"mandatory", "normal"}))
+option_6 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((ParamIndex()))), properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/10leadership_auto_index/xml/00-base.xml b/tests/dictionaries_old/10leadership_auto_index/xml/00-base.xml
new file mode 100644
index 000000000..626ba083c
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_auto_index/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ a
+ b
+ c
+
+
+
+
+
+
+
+ follower1
+
+
+
diff --git a/tests/dictionaries/10leadership_auto_index/yml/00-base.yml b/tests/dictionaries_old/10leadership_auto_index/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_auto_index/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_auto_index/yml/00-base.yml
diff --git a/tests/dictionaries_old/10leadership_autoleader/00-base.xml b/tests/dictionaries_old/10leadership_autoleader/00-base.xml
deleted file mode 100644
index 08f977237..000000000
--- a/tests/dictionaries_old/10leadership_autoleader/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- leader
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10leadership_autoleader/makedict/after.json b/tests/dictionaries_old/10leadership_autoleader/makedict/after.json
index dd62b9801..548ec3acc 100644
--- a/tests/dictionaries_old/10leadership_autoleader/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_autoleader/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_autoleader/makedict/before.json b/tests/dictionaries_old/10leadership_autoleader/makedict/before.json
index dd62b9801..548ec3acc 100644
--- a/tests/dictionaries_old/10leadership_autoleader/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_autoleader/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_autoleader/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_autoleader/result/rougail/00-base.yml
new file mode 100644
index 000000000..680b9493c
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_autoleader/result/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.leader.leader | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_autoleader/tiramisu/base.py b/tests/dictionaries_old/10leadership_autoleader/tiramisu/base.py
index 3dfb5c145..479ba99cb 100644
--- a/tests/dictionaries_old/10leadership_autoleader/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_autoleader/tiramisu/base.py
@@ -1,21 +1,64 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['rougail.general.leader.follower2'] = "{{ rougail.general.leader.leader | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True)
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_5)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.leader.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.leader.follower2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.general.leader.leader': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_autoleader/tiramisu/multi.py b/tests/dictionaries_old/10leadership_autoleader/tiramisu/multi.py
new file mode 100644
index 000000000..1ea0c713d
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_autoleader/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_5 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_6 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_11 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_12 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_10)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/10leadership_autoleader/xml/00-base.xml b/tests/dictionaries_old/10leadership_autoleader/xml/00-base.xml
new file mode 100644
index 000000000..0ac9cab9e
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_autoleader/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ leader
+ follower2
+
+
+
diff --git a/tests/dictionaries/10leadership_autoleader/yml/00-base.yml b/tests/dictionaries_old/10leadership_autoleader/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_autoleader/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_autoleader/yml/00-base.yml
diff --git a/tests/dictionaries_old/10leadership_autoleader_expert/00-base.xml b/tests/dictionaries_old/10leadership_autoleader_expert/00-base.xml
deleted file mode 100644
index 231c29f30..000000000
--- a/tests/dictionaries_old/10leadership_autoleader_expert/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- leader
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10leadership_autoleader_expert/makedict/after.json b/tests/dictionaries_old/10leadership_autoleader_expert/makedict/after.json
index 34eba3d58..a06c87b44 100644
--- a/tests/dictionaries_old/10leadership_autoleader_expert/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_autoleader_expert/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.leadermode.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.leadermode.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.leadermode.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_autoleader_expert/makedict/before.json b/tests/dictionaries_old/10leadership_autoleader_expert/makedict/before.json
index 34eba3d58..a06c87b44 100644
--- a/tests/dictionaries_old/10leadership_autoleader_expert/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_autoleader_expert/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.leadermode.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.leadermode.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.leadermode.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_autoleader_expert/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_autoleader_expert/result/rougail/00-base.yml
new file mode 100644
index 000000000..fe83276ae
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_autoleader_expert/result/rougail/00-base.yml
@@ -0,0 +1,25 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+leadermode:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ mode: expert
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_list }}'
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_autoleader_expert/tiramisu/base.py b/tests/dictionaries_old/10leadership_autoleader_expert/tiramisu/base.py
index b95e0e6fa..1335fdc34 100644
--- a/tests/dictionaries_old/10leadership_autoleader_expert/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_autoleader_expert/tiramisu/base.py
@@ -1,22 +1,64 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.leadermode.leader.leader'] = "{{ \"valfill\" | calc_list }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.leadermode.leader.leader), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"expert", "notempty"}))
option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"expert"}))
option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"expert"}))
-option_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"expert"}))
-option_4 = OptionDescription(name="leadermode", doc="leadermode", children=[option_5], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"expert"}))
+optiondescription_4 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_autoleader_expert/tiramisu/multi.py b/tests/dictionaries_old/10leadership_autoleader_expert/tiramisu/multi.py
new file mode 100644
index 000000000..a5945a16b
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_autoleader_expert/tiramisu/multi.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"expert"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"expert"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"expert"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"expert"}))
+optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"expert"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"expert"}))
+option_12 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"expert"}))
+option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"expert"}))
+option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"expert"}))
+optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_11], properties=frozenset({"expert"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"expert"}))
+optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
diff --git a/tests/dictionaries_old/10leadership_autoleader_expert/xml/00-base.xml b/tests/dictionaries_old/10leadership_autoleader_expert/xml/00-base.xml
new file mode 100644
index 000000000..bcc074625
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_autoleader_expert/xml/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ leader
+
+
+
diff --git a/tests/dictionaries/10leadership_autoleader_expert/yml/00-base.yml b/tests/dictionaries_old/10leadership_autoleader_expert/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_autoleader_expert/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_autoleader_expert/yml/00-base.yml
diff --git a/tests/dictionaries_old/10leadership_autosaveexpert/00-base.xml b/tests/dictionaries_old/10leadership_autosaveexpert/00-base.xml
deleted file mode 100644
index fab4877de..000000000
--- a/tests/dictionaries_old/10leadership_autosaveexpert/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10leadership_autosaveexpert/makedict/after.json b/tests/dictionaries_old/10leadership_autosaveexpert/makedict/after.json
index dd62b9801..548ec3acc 100644
--- a/tests/dictionaries_old/10leadership_autosaveexpert/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_autosaveexpert/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_autosaveexpert/makedict/before.json b/tests/dictionaries_old/10leadership_autosaveexpert/makedict/before.json
index dd62b9801..548ec3acc 100644
--- a/tests/dictionaries_old/10leadership_autosaveexpert/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_autosaveexpert/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_autosaveexpert/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_autosaveexpert/result/rougail/00-base.yml
new file mode 100644
index 000000000..65be907af
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_autosaveexpert/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ mode: expert
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_autosaveexpert/tiramisu/base.py b/tests/dictionaries_old/10leadership_autosaveexpert/tiramisu/base.py
index 259c0674e..5af610b12 100644
--- a/tests/dictionaries_old/10leadership_autosaveexpert/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_autosaveexpert/tiramisu/base.py
@@ -1,21 +1,64 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True)
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"expert"}))
-option_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.leader.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.leader.follower2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.general.leader.follower1': ParamOption(option_6)})), properties=frozenset({"expert"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_autosaveexpert/tiramisu/multi.py b/tests/dictionaries_old/10leadership_autosaveexpert/tiramisu/multi.py
new file mode 100644
index 000000000..2916cc29b
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_autosaveexpert/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_5 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_5)))), properties=frozenset({"expert"}))
+optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_11 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_12 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_11)))), properties=frozenset({"expert"}))
+optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/10leadership_autosaveexpert/xml/00-base.xml b/tests/dictionaries_old/10leadership_autosaveexpert/xml/00-base.xml
new file mode 100644
index 000000000..1a1171046
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_autosaveexpert/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ follower1
+ follower2
+
+
+
diff --git a/tests/dictionaries/10leadership_autosaveexpert/yml/00-base.yml b/tests/dictionaries_old/10leadership_autosaveexpert/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_autosaveexpert/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_autosaveexpert/yml/00-base.yml
diff --git a/tests/dictionaries/10load_frozenifnotin_noexist/__init__.py b/tests/dictionaries_old/10leadership_empty/__init__.py
similarity index 100%
rename from tests/dictionaries/10load_frozenifnotin_noexist/__init__.py
rename to tests/dictionaries_old/10leadership_empty/__init__.py
diff --git a/tests/dictionaries_old/10leadership_empty/makedict/after.json b/tests/dictionaries_old/10leadership_empty/makedict/after.json
new file mode 100644
index 000000000..9cd2d3dde
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_empty/makedict/after.json
@@ -0,0 +1,10 @@
+{
+ "services.tata_service.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.tata_service.manage": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries_old/10leadership_empty/makedict/base.json b/tests/dictionaries_old/10leadership_empty/makedict/base.json
new file mode 100644
index 000000000..2bcec6972
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_empty/makedict/base.json
@@ -0,0 +1,4 @@
+{
+ "services.tata_service.activate": true,
+ "services.tata_service.manage": true
+}
diff --git a/tests/dictionaries_old/10leadership_empty/makedict/before.json b/tests/dictionaries_old/10leadership_empty/makedict/before.json
new file mode 100644
index 000000000..9cd2d3dde
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_empty/makedict/before.json
@@ -0,0 +1,10 @@
+{
+ "services.tata_service.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.tata_service.manage": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries_old/10leadership_empty/result/rougail/00_base.yml b/tests/dictionaries_old/10leadership_empty/result/rougail/00_base.yml
new file mode 100644
index 000000000..9f7d9a728
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_empty/result/rougail/00_base.yml
@@ -0,0 +1,3 @@
+empty_leader:
+ type: leadership
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_empty/result/services/00_base.yml b/tests/dictionaries_old/10leadership_empty/result/services/00_base.yml
new file mode 100644
index 000000000..c68a20606
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_empty/result/services/00_base.yml
@@ -0,0 +1,2 @@
+tata.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_empty/tiramisu/base.py b/tests/dictionaries_old/10leadership_empty/tiramisu/base.py
new file mode 100644
index 000000000..c433bbd51
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_empty/tiramisu/base.py
@@ -0,0 +1,32 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[], properties=frozenset({"expert"}))
+option_5 = BoolOption(name="activate", doc="activate", default=True)
+option_6 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_4 = OptionDescription(name="tata_service", doc="tata_service", children=[option_5, option_6])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries_old/10leadership_empty/tiramisu/multi.py b/tests/dictionaries_old/10leadership_empty/tiramisu/multi.py
new file mode 100644
index 000000000..d4f12df9e
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_empty/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[], properties=frozenset({"expert"}))
+option_3 = BoolOption(name="activate", doc="activate", default=True)
+option_4 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_10 = OptionDescription(name="tata_service", doc="tata.service", children=[option_3, option_4])
+optiondescription_10.impl_set_information('type', "service")
+optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8, optiondescription_9])
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[], properties=frozenset({"expert"}))
+option_5 = BoolOption(name="activate", doc="activate", default=True)
+option_6 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_14 = OptionDescription(name="tata_service", doc="tata.service", children=[option_5, option_6])
+optiondescription_14.impl_set_information('type', "service")
+optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12, optiondescription_13])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_11])
diff --git a/tests/dictionaries_old/10leadership_empty/xml/00_base.xml b/tests/dictionaries_old/10leadership_empty/xml/00_base.xml
new file mode 100644
index 000000000..7c9afec49
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_empty/xml/00_base.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/10leadership_empty/yml/00_base.yml b/tests/dictionaries_old/10leadership_empty/yml/00_base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_empty/yml/00_base.yml
rename to tests/dictionaries_old/10leadership_empty/yml/00_base.yml
diff --git a/tests/dictionaries/10load_mandatoryifnotin_noexist/__init__.py b/tests/dictionaries_old/10leadership_hidden/__init__.py
similarity index 100%
rename from tests/dictionaries/10load_mandatoryifnotin_noexist/__init__.py
rename to tests/dictionaries_old/10leadership_hidden/__init__.py
diff --git a/tests/dictionaries_old/10leadership_hidden/makedict/after.json b/tests/dictionaries_old/10leadership_hidden/makedict/after.json
new file mode 100644
index 000000000..a06c87b44
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_hidden/makedict/after.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.leadermode.leader.leader": {
+ "owner": "default",
+ "value": []
+ }
+}
diff --git a/tests/dictionaries_old/10leadership_hidden/makedict/base.json b/tests/dictionaries_old/10leadership_hidden/makedict/base.json
new file mode 100644
index 000000000..fe8a1c7ae
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_hidden/makedict/base.json
@@ -0,0 +1,4 @@
+{
+ "rougail.general.mode_conteneur_actif": "non",
+ "rougail.leadermode.leader.leader": []
+}
diff --git a/tests/dictionaries_old/10leadership_hidden/makedict/before.json b/tests/dictionaries_old/10leadership_hidden/makedict/before.json
new file mode 100644
index 000000000..a06c87b44
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_hidden/makedict/before.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.leadermode.leader.leader": {
+ "owner": "default",
+ "value": []
+ }
+}
diff --git a/tests/dictionaries_old/10leadership_hidden/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_hidden/result/rougail/00-base.yml
new file mode 100644
index 000000000..767b506ce
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_hidden/result/rougail/00-base.yml
@@ -0,0 +1,25 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+leadermode:
+ leader:
+ description: leader
+ hidden: true
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_list }}'
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_hidden/tiramisu/base.py b/tests/dictionaries_old/10leadership_hidden/tiramisu/base.py
new file mode 100644
index 000000000..1549d9a09
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_hidden/tiramisu/base.py
@@ -0,0 +1,64 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.leadermode.leader.leader'] = "{{ \"valfill\" | calc_list }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.leadermode.leader.leader), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"hidden", "normal"}))
+optiondescription_4 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_hidden/tiramisu/multi.py b/tests/dictionaries_old/10leadership_hidden/tiramisu/multi.py
new file mode 100644
index 000000000..5cd5bb4ec
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_hidden/tiramisu/multi.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"expert"}))
+option_12 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"hidden", "normal"}))
+optiondescription_10 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
diff --git a/tests/dictionaries_old/10leadership_hidden/xml/00-base.xml b/tests/dictionaries_old/10leadership_hidden/xml/00-base.xml
new file mode 100644
index 000000000..009ff3c6e
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_hidden/xml/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ leader
+
+
+
diff --git a/tests/dictionaries/10leadership_hidden/yml/00-base.yml b/tests/dictionaries_old/10leadership_hidden/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_hidden/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_hidden/yml/00-base.yml
diff --git a/tests/dictionaries_old/10leadership_leader_hidden/00-base.xml b/tests/dictionaries_old/10leadership_leader_hidden/00-base.xml
deleted file mode 100644
index baa6de826..000000000
--- a/tests/dictionaries_old/10leadership_leader_hidden/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- leader
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10leadership_leader_hidden/makedict/after.json b/tests/dictionaries_old/10leadership_leader_hidden/makedict/after.json
index 34eba3d58..a06c87b44 100644
--- a/tests/dictionaries_old/10leadership_leader_hidden/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_leader_hidden/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.leadermode.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.leadermode.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.leadermode.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_leader_hidden/makedict/before.json b/tests/dictionaries_old/10leadership_leader_hidden/makedict/before.json
index 34eba3d58..a06c87b44 100644
--- a/tests/dictionaries_old/10leadership_leader_hidden/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_leader_hidden/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.leadermode.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.leadermode.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.leadermode.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_leader_hidden/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_leader_hidden/result/rougail/00-base.yml
new file mode 100644
index 000000000..a4d447d82
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_leader_hidden/result/rougail/00-base.yml
@@ -0,0 +1,25 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+leadermode:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_list }}'
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_leader_hidden/tiramisu/base.py b/tests/dictionaries_old/10leadership_leader_hidden/tiramisu/base.py
index f530c3eed..1549d9a09 100644
--- a/tests/dictionaries_old/10leadership_leader_hidden/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_leader_hidden/tiramisu/base.py
@@ -1,22 +1,64 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.leadermode.leader.leader'] = "{{ \"valfill\" | calc_list }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.leadermode.leader.leader), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "normal", "notempty"}))
option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
-option_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"hidden", "normal"}))
-option_4 = OptionDescription(name="leadermode", doc="leadermode", children=[option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"hidden", "normal"}))
+optiondescription_4 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_leader_hidden/tiramisu/multi.py b/tests/dictionaries_old/10leadership_leader_hidden/tiramisu/multi.py
new file mode 100644
index 000000000..5cd5bb4ec
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_leader_hidden/tiramisu/multi.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"expert"}))
+option_12 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func.calc_list, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"hidden", "normal"}))
+optiondescription_10 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
diff --git a/tests/dictionaries_old/10leadership_leader_hidden/xml/00-base.xml b/tests/dictionaries_old/10leadership_leader_hidden/xml/00-base.xml
new file mode 100644
index 000000000..5eb2d5a52
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_leader_hidden/xml/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ leader
+
+
+
diff --git a/tests/dictionaries/10leadership_leader_hidden/yml/00-base.yml b/tests/dictionaries_old/10leadership_leader_hidden/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_leader_hidden/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_leader_hidden/yml/00-base.yml
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in/00-base.xml b/tests/dictionaries_old/10leadership_leader_hidden_if_in/00-base.xml
deleted file mode 100644
index 0b3448653..000000000
--- a/tests/dictionaries_old/10leadership_leader_hidden_if_in/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- follower1
- follower2
-
-
- non
- leader
-
-
-
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in/makedict/after.json b/tests/dictionaries_old/10leadership_leader_hidden_if_in/makedict/after.json
index 34eba3d58..a06c87b44 100644
--- a/tests/dictionaries_old/10leadership_leader_hidden_if_in/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_leader_hidden_if_in/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.leadermode.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.leadermode.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.leadermode.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in/makedict/before.json b/tests/dictionaries_old/10leadership_leader_hidden_if_in/makedict/before.json
index 34eba3d58..a06c87b44 100644
--- a/tests/dictionaries_old/10leadership_leader_hidden_if_in/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_leader_hidden_if_in/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.leadermode.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.leadermode.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.leadermode.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_leader_hidden_if_in/result/rougail/00-base.yml
new file mode 100644
index 000000000..f8d7bbac2
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_leader_hidden_if_in/result/rougail/00-base.yml
@@ -0,0 +1,25 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+leadermode:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.mode_conteneur_actif == "non" %}true{% else
+ %}false{% endif %}'
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in/tiramisu/base.py b/tests/dictionaries_old/10leadership_leader_hidden_if_in/tiramisu/base.py
index 42137eb88..b3d7e0b3d 100644
--- a/tests/dictionaries_old/10leadership_leader_hidden_if_in/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_leader_hidden_if_in/tiramisu/base.py
@@ -1,22 +1,34 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")}))}))
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")}))}))
-option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")}))}))
-option_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")}))}))
-option_4 = OptionDescription(name="leadermode", doc="leadermode", children=[option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in/tiramisu/multi.py b/tests/dictionaries_old/10leadership_leader_hidden_if_in/tiramisu/multi.py
new file mode 100644
index 000000000..35392e10f
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_leader_hidden_if_in/tiramisu/multi.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"expert"}))
+option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_10 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in/xml/00-base.xml b/tests/dictionaries_old/10leadership_leader_hidden_if_in/xml/00-base.xml
new file mode 100644
index 000000000..41266b1e1
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_leader_hidden_if_in/xml/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+ non
+ leader
+
+
+
diff --git a/tests/dictionaries/10leadership_leader_hidden_if_in/yml/00-base.yml b/tests/dictionaries_old/10leadership_leader_hidden_if_in/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_leader_hidden_if_in/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_leader_hidden_if_in/yml/00-base.yml
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/00-base.xml b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/00-base.xml
deleted file mode 100644
index 9a5818a56..000000000
--- a/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- follower1
- follower2
-
-
- non
- leader
-
-
-
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/makedict/after.json b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/makedict/after.json
index 05ecdcd29..8b4b57426 100644
--- a/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.leadermode.other.leader": {
"owner": "default",
"value": []
- },
- "rougail.leadermode.other.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.leadermode.other.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/makedict/before.json b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/makedict/before.json
index 05ecdcd29..8b4b57426 100644
--- a/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.leadermode.other.leader": {
"owner": "default",
"value": []
- },
- "rougail.leadermode.other.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.leadermode.other.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/result/rougail/00-base.yml
new file mode 100644
index 000000000..59946e2b8
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/result/rougail/00-base.yml
@@ -0,0 +1,25 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+leadermode:
+ other:
+ description: other
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.mode_conteneur_actif == "non" %}true{% else
+ %}false{% endif %}'
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/tiramisu/base.py b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/tiramisu/base.py
index 543a9246b..425dd3cc1 100644
--- a/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/tiramisu/base.py
@@ -1,22 +1,34 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")}))}))
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")}))}))
-option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")}))}))
-option_5 = Leadership(name="other", doc="other", children=[option_6, option_7, option_8], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")}))}))
-option_4 = OptionDescription(name="leadermode", doc="leadermode", children=[option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "normal"}))
+optiondescription_5 = Leadership(name="other", doc="other", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/tiramisu/multi.py b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/tiramisu/multi.py
new file mode 100644
index 000000000..35abc8e9b
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/tiramisu/multi.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_4 = Leadership(name="other", doc="other", children=[option_5, option_6, option_7], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"expert"}))
+option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_11 = Leadership(name="other", doc="other", children=[option_12, option_13, option_14], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_10 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
diff --git a/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/xml/00-base.xml b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/xml/00-base.xml
new file mode 100644
index 000000000..f977493e5
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/xml/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+ non
+ leader
+
+
+
diff --git a/tests/dictionaries/10leadership_leader_hidden_if_in_name/yml/00-base.yml b/tests/dictionaries_old/10leadership_leader_hidden_if_in_name/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_leader_hidden_if_in_name/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_leader_hidden_if_in_name/yml/00-base.yml
diff --git a/tests/dictionaries_old/10leadership_leadermandatory/00-base.xml b/tests/dictionaries_old/10leadership_leadermandatory/00-base.xml
deleted file mode 100644
index b8d1b8136..000000000
--- a/tests/dictionaries_old/10leadership_leadermandatory/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10leadership_leadermandatory/makedict/after.json b/tests/dictionaries_old/10leadership_leadermandatory/makedict/after.json
index dd62b9801..548ec3acc 100644
--- a/tests/dictionaries_old/10leadership_leadermandatory/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_leadermandatory/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_leadermandatory/makedict/before.json b/tests/dictionaries_old/10leadership_leadermandatory/makedict/before.json
index dd62b9801..548ec3acc 100644
--- a/tests/dictionaries_old/10leadership_leadermandatory/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_leadermandatory/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_leadermandatory/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_leadermandatory/result/rougail/00-base.yml
new file mode 100644
index 000000000..0dfd29624
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_leadermandatory/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ mandatory: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_leadermandatory/tiramisu/base.py b/tests/dictionaries_old/10leadership_leadermandatory/tiramisu/base.py
index 6cda99314..9419e614b 100644
--- a/tests/dictionaries_old/10leadership_leadermandatory/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_leadermandatory/tiramisu/base.py
@@ -1,21 +1,64 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"mandatory"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-option_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"basic"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "mandatory"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.leader.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.leader.follower2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.general.leader.follower1': ParamOption(option_6)})), properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_leadermandatory/tiramisu/multi.py b/tests/dictionaries_old/10leadership_leadermandatory/tiramisu/multi.py
new file mode 100644
index 000000000..acbcc6e71
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_leadermandatory/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "mandatory"}))
+option_5 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_5)))), properties=frozenset({"normal"}))
+optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "mandatory"}))
+option_11 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_12 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_11)))), properties=frozenset({"normal"}))
+optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"basic"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"basic"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/10leadership_leadermandatory/xml/00-base.xml b/tests/dictionaries_old/10leadership_leadermandatory/xml/00-base.xml
new file mode 100644
index 000000000..d086a7be6
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_leadermandatory/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ follower1
+ follower2
+
+
+
diff --git a/tests/dictionaries/10leadership_leadermandatory/yml/00-base.yml b/tests/dictionaries_old/10leadership_leadermandatory/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_leadermandatory/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_leadermandatory/yml/00-base.yml
diff --git a/tests/dictionaries_old/10leadership_mandatory/00-base.xml b/tests/dictionaries_old/10leadership_mandatory/00-base.xml
deleted file mode 100644
index 07d8f068d..000000000
--- a/tests/dictionaries_old/10leadership_mandatory/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10leadership_mandatory/__init__.py b/tests/dictionaries_old/10leadership_mandatory/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/10leadership_mandatory/makedict/after.json b/tests/dictionaries_old/10leadership_mandatory/makedict/after.json
deleted file mode 100644
index dd62b9801..000000000
--- a/tests/dictionaries_old/10leadership_mandatory/makedict/after.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.leader.leader": {
- "owner": "default",
- "value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
- }
-}
diff --git a/tests/dictionaries_old/10leadership_mandatory/makedict/base.json b/tests/dictionaries_old/10leadership_mandatory/makedict/base.json
deleted file mode 100644
index 9031a92aa..000000000
--- a/tests/dictionaries_old/10leadership_mandatory/makedict/base.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "rougail.general.leader.leader": []
-}
diff --git a/tests/dictionaries_old/10leadership_mandatory/makedict/before.json b/tests/dictionaries_old/10leadership_mandatory/makedict/before.json
deleted file mode 100644
index dd62b9801..000000000
--- a/tests/dictionaries_old/10leadership_mandatory/makedict/before.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.leader.leader": {
- "owner": "default",
- "value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
- }
-}
diff --git a/tests/dictionaries_old/10leadership_mandatory/tiramisu/base.py b/tests/dictionaries_old/10leadership_mandatory/tiramisu/base.py
deleted file mode 100644
index 6e675dab9..000000000
--- a/tests/dictionaries_old/10leadership_mandatory/tiramisu/base.py
+++ /dev/null
@@ -1,21 +0,0 @@
-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 tiramisu4 import *
-except:
- from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True)
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
-option_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower/00-base.xml b/tests/dictionaries_old/10leadership_mandatoryfollower/00-base.xml
deleted file mode 100644
index 6865c3315..000000000
--- a/tests/dictionaries_old/10leadership_mandatoryfollower/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- oui
-
-
-
-
-
-
-
- nut_monitor_host
-
-
-
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower/makedict/after.json b/tests/dictionaries_old/10leadership_mandatoryfollower/makedict/after.json
index c66326dac..df73b8790 100644
--- a/tests/dictionaries_old/10leadership_mandatoryfollower/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower/makedict/after.json
@@ -6,9 +6,5 @@
"rougail.general.nut_monitor_netmask.nut_monitor_netmask": {
"owner": "default",
"value": []
- },
- "rougail.general.nut_monitor_netmask.nut_monitor_host": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower/makedict/before.json b/tests/dictionaries_old/10leadership_mandatoryfollower/makedict/before.json
index c66326dac..df73b8790 100644
--- a/tests/dictionaries_old/10leadership_mandatoryfollower/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower/makedict/before.json
@@ -6,9 +6,5 @@
"rougail.general.nut_monitor_netmask.nut_monitor_netmask": {
"owner": "default",
"value": []
- },
- "rougail.general.nut_monitor_netmask.nut_monitor_host": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_mandatoryfollower/result/rougail/00-base.yml
new file mode 100644
index 000000000..adfbc5663
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower/result/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+ nut_monitor_netmask:
+ description: Masque de l'IP du réseau de l'esclave
+ type: leadership
+ nut_monitor_netmask:
+ type: netmask
+ description: Masque de l'IP du réseau de l'esclave
+ multi: true
+ nut_monitor_host:
+ type: network
+ description: Adresse IP du réseau de l'esclave
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower/tiramisu/base.py b/tests/dictionaries_old/10leadership_mandatoryfollower/tiramisu/base.py
index 54b2c84ad..c23688623 100644
--- a/tests/dictionaries_old/10leadership_mandatoryfollower/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True)
+option_5 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal", "notempty"}))
option_6 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, properties=frozenset({"basic", "mandatory"}))
-option_4 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_5, option_6], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower/tiramisu/multi.py b/tests/dictionaries_old/10leadership_mandatoryfollower/tiramisu/multi.py
new file mode 100644
index 000000000..d279b65e5
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
+option_5 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_3 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_9 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
+option_10 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, properties=frozenset({"basic", "mandatory"}))
+optiondescription_8 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="general", doc="général", children=[option_7, optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower/xml/00-base.xml b/tests/dictionaries_old/10leadership_mandatoryfollower/xml/00-base.xml
new file mode 100644
index 000000000..94c8c1191
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower/xml/00-base.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ oui
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/10leadership_mandatoryfollower/yml/00-base.yml b/tests/dictionaries_old/10leadership_mandatoryfollower/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_mandatoryfollower/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_mandatoryfollower/yml/00-base.yml
diff --git a/tests/dictionaries/10valid_enum_append/__init__.py b/tests/dictionaries_old/10leadership_mandatoryfollower_value/__init__.py
similarity index 100%
rename from tests/dictionaries/10valid_enum_append/__init__.py
rename to tests/dictionaries_old/10leadership_mandatoryfollower_value/__init__.py
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower_value/makedict/after.json b/tests/dictionaries_old/10leadership_mandatoryfollower_value/makedict/after.json
new file mode 100644
index 000000000..df73b8790
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower_value/makedict/after.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "oui"
+ },
+ "rougail.general.nut_monitor_netmask.nut_monitor_netmask": {
+ "owner": "default",
+ "value": []
+ }
+}
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower_value/makedict/base.json b/tests/dictionaries_old/10leadership_mandatoryfollower_value/makedict/base.json
new file mode 100644
index 000000000..af7d636d7
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower_value/makedict/base.json
@@ -0,0 +1,4 @@
+{
+ "rougail.general.mode_conteneur_actif": "oui",
+ "rougail.general.nut_monitor_netmask.nut_monitor_netmask": []
+}
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower_value/makedict/before.json b/tests/dictionaries_old/10leadership_mandatoryfollower_value/makedict/before.json
new file mode 100644
index 000000000..df73b8790
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower_value/makedict/before.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "oui"
+ },
+ "rougail.general.nut_monitor_netmask.nut_monitor_netmask": {
+ "owner": "default",
+ "value": []
+ }
+}
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower_value/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_mandatoryfollower_value/result/rougail/00-base.yml
new file mode 100644
index 000000000..f8f642153
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower_value/result/rougail/00-base.yml
@@ -0,0 +1,20 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+ nut_monitor_netmask:
+ description: Masque de l'IP du réseau de l'esclave
+ type: leadership
+ nut_monitor_netmask:
+ type: netmask
+ description: Masque de l'IP du réseau de l'esclave
+ multi: true
+ nut_monitor_host:
+ type: network
+ description: Adresse IP du réseau de l'esclave
+ mandatory: true
+ default: 192.168.0.0
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower_value/tiramisu/base.py b/tests/dictionaries_old/10leadership_mandatoryfollower_value/tiramisu/base.py
new file mode 100644
index 000000000..213cb8976
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower_value/tiramisu/base.py
@@ -0,0 +1,32 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal", "notempty"}))
+option_6 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, default="192.168.0.0", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower_value/tiramisu/multi.py b/tests/dictionaries_old/10leadership_mandatoryfollower_value/tiramisu/multi.py
new file mode 100644
index 000000000..99997f62f
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower_value/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
+option_5 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, default_multi="192.168.0.0", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_9 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"normal"}))
+option_10 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, default_multi="192.168.0.0", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="general", doc="général", children=[option_7, optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/10leadership_mandatoryfollower_value/xml/00-base.xml b/tests/dictionaries_old/10leadership_mandatoryfollower_value/xml/00-base.xml
new file mode 100644
index 000000000..b0f28bf09
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_mandatoryfollower_value/xml/00-base.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ oui
+
+
+
+
+ 192.168.0.0
+
+
+
+
+
+
diff --git a/tests/dictionaries/10leadership_mandatoryfollower_value/yml/00-base.yml b/tests/dictionaries_old/10leadership_mandatoryfollower_value/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10leadership_mandatoryfollower_value/yml/00-base.yml
rename to tests/dictionaries_old/10leadership_mandatoryfollower_value/yml/00-base.yml
diff --git a/tests/dictionaries_old/10leadership_multi/00-base.xml b/tests/dictionaries_old/10leadership_multi/00-base.xml
deleted file mode 100644
index 8bb071cfc..000000000
--- a/tests/dictionaries_old/10leadership_multi/00-base.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
- follower11
- follower21
-
-
-
diff --git a/tests/dictionaries_old/10leadership_multi/makedict/after.json b/tests/dictionaries_old/10leadership_multi/makedict/after.json
index 84e0751ce..0b42b7958 100644
--- a/tests/dictionaries_old/10leadership_multi/makedict/after.json
+++ b/tests/dictionaries_old/10leadership_multi/makedict/after.json
@@ -7,24 +7,8 @@
"owner": "default",
"value": []
},
- "rougail.general1.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower2": {
- "owner": [],
- "value": []
- },
"rougail.general1.leader1.leader1": {
"owner": "default",
"value": []
- },
- "rougail.general1.leader1.follower11": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader1.follower21": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_multi/makedict/before.json b/tests/dictionaries_old/10leadership_multi/makedict/before.json
index 84e0751ce..0b42b7958 100644
--- a/tests/dictionaries_old/10leadership_multi/makedict/before.json
+++ b/tests/dictionaries_old/10leadership_multi/makedict/before.json
@@ -7,24 +7,8 @@
"owner": "default",
"value": []
},
- "rougail.general1.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower2": {
- "owner": [],
- "value": []
- },
"rougail.general1.leader1.leader1": {
"owner": "default",
"value": []
- },
- "rougail.general1.leader1.follower11": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader1.follower21": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10leadership_multi/result/rougail/00-base.yml b/tests/dictionaries_old/10leadership_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..a76ff7462
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_multi/result/rougail/00-base.yml
@@ -0,0 +1,39 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leader.follower1 | calc_val }}'
+ leader1:
+ description: leader
+ type: leadership
+ leader1:
+ type: string
+ description: leader
+ multi: true
+ follower11:
+ type: string
+ description: follower1
+ follower21:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/10leadership_multi/tiramisu/base.py b/tests/dictionaries_old/10leadership_multi/tiramisu/base.py
index 0dcf775ba..1aea8bb4a 100644
--- a/tests/dictionaries_old/10leadership_multi/tiramisu/base.py
+++ b/tests/dictionaries_old/10leadership_multi/tiramisu/base.py
@@ -1,26 +1,69 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True)
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_7)))), properties=frozenset({"normal"}))
-option_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-option_10 = StrOption(name="leader1", doc="leader", multi=True)
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leader.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leader.follower2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.general1.leader.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+option_10 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
option_11 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"normal"}))
option_12 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"normal"}))
-option_9 = Leadership(name="leader1", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
-option_4 = OptionDescription(name="general1", doc="general1", children=[option_5, option_9], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_9 = Leadership(name="leader1", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5, optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10leadership_multi/tiramisu/multi.py b/tests/dictionaries_old/10leadership_multi/tiramisu/multi.py
new file mode 100644
index 000000000..8efd3d6c0
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_multi/tiramisu/multi.py
@@ -0,0 +1,52 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+option_9 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_10 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_11 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_8 = Leadership(name="leader1", doc="leader", children=[option_9, option_10, option_11], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4, optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24])
+option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"normal"}))
+option_16 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_17 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_18 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_17)))), properties=frozenset({"normal"}))
+optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"normal"}))
+option_20 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_21 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_22 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_19 = Leadership(name="leader1", doc="leader", children=[option_20, option_21, option_22], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="general1", doc="general1", children=[optiondescription_15, optiondescription_19], properties=frozenset({"normal"}))
+optiondescription_26 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"normal"}))
+optiondescription_25 = OptionDescription(name="2", doc="2", children=[optiondescription_26])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_25])
diff --git a/tests/dictionaries_old/10leadership_multi/xml/00-base.xml b/tests/dictionaries_old/10leadership_multi/xml/00-base.xml
new file mode 100644
index 000000000..3ec72723f
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_multi/xml/00-base.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ follower1
+ follower2
+
+
+
diff --git a/tests/dictionaries_old/10leadership_multi/yml/00-base.yml b/tests/dictionaries_old/10leadership_multi/yml/00-base.yml
new file mode 100644
index 000000000..218e5ba74
--- /dev/null
+++ b/tests/dictionaries_old/10leadership_multi/yml/00-base.yml
@@ -0,0 +1,58 @@
+version: '0.10'
+variables:
+- family:
+ - name: general
+ variables:
+ - variable:
+ - name: mode_conteneur_actif
+ type: string
+ description: No change
+ value:
+ - text: non
+ - name: general1
+ variables:
+ - family:
+ - name: leader
+ description: leader
+ leadership: true
+ variables:
+ - variable:
+ - name: leader
+ type: string
+ description: leader
+ multi: true
+ - name: follower1
+ type: string
+ description: follower1
+ - name: follower2
+ type: string
+ description: follower2
+ - name: leader1
+ description: leader
+ leadership: true
+ variables:
+ - variable:
+ - name: leader1
+ type: string
+ description: leader
+ multi: true
+ - name: follower11
+ type: string
+ description: follower1
+ - name: follower21
+ type: string
+ description: follower2
+constraints:
+- fill:
+ - name: calc_val
+ param:
+ - name: valeur
+ text: valfill
+ target:
+ - text: follower1
+ - name: calc_val
+ param:
+ - type: variable
+ text: follower1
+ target:
+ - text: follower2
diff --git a/tests/dictionaries_old/10load_disabled_if_in/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in/00-base.xml
deleted file mode 100644
index b9d716872..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in/result/rougail/00-base.yml
new file mode 100644
index 000000000..354f25437
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in/result/rougail/00-base.yml
@@ -0,0 +1,24 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in/tiramisu/base.py
index fc43347fd..78c59ae31 100644
--- a/tests/dictionaries_old/10load_disabled_if_in/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_disabled_if_in/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in/tiramisu/multi.py
new file mode 100644
index 000000000..15b3e1b4a
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_disabled_if_in/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in/xml/00-base.xml
new file mode 100644
index 000000000..82a7a1c5b
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in/xml/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_fill/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_fill/00-base.xml
deleted file mode 100644
index 4488de320..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_fill/00-base.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
- no
-
-
-
-
-
-
-
- no
- variable1
-
-
- variable1
- variable2
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_fill/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_fill/result/rougail/00-base.yml
new file mode 100644
index 000000000..d69ed45c4
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_fill/result/rougail/00-base.yml
@@ -0,0 +1,21 @@
+general:
+ condition:
+ type: string
+ default: 'no'
+ variable1:
+ type: string
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "no" %}true{% else %}false{% endif
+ %}'
+ variable2:
+ type: string
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.variable1 | calc_val }}'
+ params:
+ rougail.general.variable1:
+ type: variable
+ variable: rougail.general.variable1
+ propertyerror: false
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_fill/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_fill/tiramisu/base.py
index c0133d420..49ee41039 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_fill/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_fill/tiramisu/base.py
@@ -1,19 +1,61 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.variable2'] = "{{ rougail.general.variable1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("no")}))}))
-option_5 = StrOption(name="variable2", doc="variable2", default=Calculation(func.calc_val, Params((ParamOption(option_4, notraisepropertyerror=True)))), properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal"}))
+option_5 = StrOption(name="variable2", doc="variable2", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.variable2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), 'rougail.general.variable1': ParamOption(option_4)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_fill/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_fill/tiramisu/multi.py
new file mode 100644
index 000000000..6f976df89
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_fill/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="variable2", doc="variable2", default=Calculation(func.calc_val, Params((ParamOption(option_3, notraisepropertyerror=True)))), properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
+option_8 = StrOption(name="variable2", doc="variable2", default=Calculation(func.calc_val, Params((ParamOption(option_7, notraisepropertyerror=True)))), properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_fill/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_fill/xml/00-base.xml
new file mode 100644
index 000000000..36309a43a
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_fill/xml/00-base.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ no
+
+
+
+
+
+
+
+ no
+ variable1
+
+
+ variable1
+ variable2
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_fill/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_fill/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_fill/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_fill/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_list_optional/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_list_optional/00-base.xml
deleted file mode 100644
index 51927ae8f..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_list_optional/00-base.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
- True
- unknown
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_list_optional/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_list_optional/result/rougail/00-base.yml
new file mode 100644
index 000000000..5b42c2211
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_list_optional/result/rougail/00-base.yml
@@ -0,0 +1,3 @@
+condition:
+ type: boolean
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_list_optional/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_list_optional/tiramisu/base.py
index 5dc5d1c29..7dc3fc4b3 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_list_optional/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_list_optional/tiramisu/base.py
@@ -1,16 +1,28 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_list_optional/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_list_optional/tiramisu/multi.py
new file mode 100644
index 000000000..9f8efbee3
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_list_optional/tiramisu/multi.py
@@ -0,0 +1,32 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_1 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="1", doc="1", children=[optiondescription_4])
+option_2 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3, optiondescription_5])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_list_optional/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_list_optional/xml/00-base.xml
new file mode 100644
index 000000000..706dac54a
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_list_optional/xml/00-base.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+ True
+ unknown
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_list_optional/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_list_optional/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_list_optional/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_list_optional/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param/00-base.xml
deleted file mode 100644
index e24812055..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param/00-base.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
- /tmp/file1
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- maybe
- mode_conteneur_actif
- mode_conteneur_actif2
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param/makedict/after.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param/makedict/after.json
index 465294dd5..a3d4412e4 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param/makedict/after.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param/makedict/after.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param/makedict/base.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param/makedict/base.json
index f4ceb0460..8ad0ec0ae 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param/makedict/base.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param/makedict/base.json
@@ -2,8 +2,9 @@
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
"rougail.general.mode_conteneur_actif2": "non",
- "services.test.files.file1.name": "/tmp/file1",
- "services.test.files.file1.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file1.name": "/tmp/file1",
+ "services.test_service.files.file1.source": "file1",
+ "services.test_service.files.file1.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param/makedict/before.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param/makedict/before.json
index 465294dd5..a3d4412e4 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param/makedict/before.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param/makedict/before.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param/result/rougail/00-base.yml
new file mode 100644
index 000000000..bd5a3dffd
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param/result/rougail/00-base.yml
@@ -0,0 +1,24 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" or rougail.general.condition
+ == "maybe" %}true{% else %}false{% endif %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" or rougail.general.condition
+ == "maybe" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param/result/services/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param/result/services/00-base.yml
new file mode 100644
index 000000000..6abe5cc6a
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file1:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" or rougail.general.condition
+ == "maybe" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param/tiramisu/base.py
index 8557c23f5..34afed93f 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11])
-option_9.impl_set_information('source', "file1")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/tmp/file1")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param/tiramisu/multi.py
new file mode 100644
index 000000000..5651ec2f4
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_14 = StrOption(name="source", doc="source", default="file1")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
+optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_21 = StrOption(name="source", doc="source", default="file1")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
+optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param/xml/00-base.xml
new file mode 100644
index 000000000..114b6977d
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param/xml/00-base.xml
@@ -0,0 +1,30 @@
+
+
+
+
+ /tmp/file1
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ maybe
+ mode_conteneur_actif
+ mode_conteneur_actif2
+ afilllist
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_multi_param/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_multi_param/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/00-base.xml
deleted file mode 100644
index 484e19178..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/00-base.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
- /tmp/file1
-
-
-
-
-
- no
-
-
- no
-
-
- no
-
-
-
-
-
- yes
- maybe
- test_variable
- afilllist
-
-
- yes
- maybe
- test_variable
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/makedict/after.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/makedict/after.json
index c95490833..aaaf7a7ef 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/makedict/after.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/makedict/after.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": "no"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/makedict/base.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/makedict/base.json
index 16da02ea2..3c6640c01 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/makedict/base.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/makedict/base.json
@@ -2,8 +2,9 @@
"rougail.general.condition": "no",
"rougail.general.condition2": "no",
"rougail.general.test_variable": "no",
- "services.test.files.file1.name": "/tmp/file1",
- "services.test.files.file1.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file1.name": "/tmp/file1",
+ "services.test_service.files.file1.source": "file1",
+ "services.test_service.files.file1.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/makedict/before.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/makedict/before.json
index c95490833..aaaf7a7ef 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/makedict/before.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/makedict/before.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": "no"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/result/rougail/00-base.yml
new file mode 100644
index 000000000..2f360f004
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/result/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: 'no'
+ condition2:
+ type: string
+ description: No change
+ default: 'no'
+ test_variable:
+ type: string
+ description: No change
+ hidden: true
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition2 == "yes" or rougail.general.condition2
+ == "maybe" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/result/services/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/result/services/00-base.yml
new file mode 100644
index 000000000..beb053e5c
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file1:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "yes" or rougail.general.condition
+ == "maybe" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/tiramisu/base.py
index 15c079ec7..5d32ed4c3 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("yes")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("yes")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11])
-option_9.impl_set_information('source', "file1")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/tmp/file1")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/tiramisu/multi.py
new file mode 100644
index 000000000..1173a2a22
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_14 = StrOption(name="source", doc="source", default="file1")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
+optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_21 = StrOption(name="source", doc="source", default="file1")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_7, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
+optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param2/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/xml/00-base.xml
new file mode 100644
index 000000000..802fd8f18
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/xml/00-base.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ /tmp/file1
+
+
+
+
+
+ no
+
+
+ no
+
+
+ no
+
+
+
+
+
+ yes
+ maybe
+ test_variable
+ afilllist
+
+
+ yes
+ maybe
+ test_variable
+ afilllist
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param2/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param2/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_multi_param2/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_multi_param2/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/00-base.xml
deleted file mode 100644
index 6162a26ef..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/00-base.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
- /tmp/file1
-
-
-
-
-
- no
-
-
- no
-
-
- no
-
-
-
-
-
- yes
- maybe
- test_variable
- afilllist
-
-
- yes
- maybe
- test_variable
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/makedict/after.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/makedict/after.json
index fd86985c2..a2921bc75 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/makedict/after.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/makedict/after.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "no"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/makedict/base.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/makedict/base.json
index 2d19d40ad..64c16aabf 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/makedict/base.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/makedict/base.json
@@ -1,8 +1,9 @@
{
"rougail.general.condition": "no",
"rougail.general.condition2": "no",
- "services.test.files.file1.name": "/tmp/file1",
- "services.test.files.file1.activate": false,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file1.name": "/tmp/file1",
+ "services.test_service.files.file1.source": "file1",
+ "services.test_service.files.file1.activate": false,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/makedict/before.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/makedict/before.json
index fd86985c2..a2921bc75 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/makedict/before.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/makedict/before.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "no"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/result/rougail/00-base.yml
new file mode 100644
index 000000000..2f360f004
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/result/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: 'no'
+ condition2:
+ type: string
+ description: No change
+ default: 'no'
+ test_variable:
+ type: string
+ description: No change
+ hidden: true
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition2 == "yes" or rougail.general.condition2
+ == "maybe" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/result/services/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/result/services/00-base.yml
new file mode 100644
index 000000000..16c140073
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file1:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "yes" or rougail.general.condition
+ == "maybe" %}false{% else %}true{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/tiramisu/base.py
index 416c706c7..5d32ed4c3 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("yes")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11])
-option_9.impl_set_information('source', "file1")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/tmp/file1")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/tiramisu/multi.py
new file mode 100644
index 000000000..52afdbc39
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_14 = StrOption(name="source", doc="source", default="file1")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
+optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_21 = StrOption(name="source", doc="source", default="file1")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_7, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
+optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param3/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/xml/00-base.xml
new file mode 100644
index 000000000..5bf93c031
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/xml/00-base.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ /tmp/file1
+
+
+
+
+
+ no
+
+
+ no
+
+
+ no
+
+
+
+
+
+ yes
+ maybe
+ test_variable
+ afilllist
+
+
+ yes
+ maybe
+ test_variable
+ afilllist
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param3/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_multi_param3/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_multi_param3/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/00-base.xml
deleted file mode 100644
index efd763d3b..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/00-base.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
- /tmp/file1
-
-
-
-
-
- yes
-
-
- no
-
-
- no
-
-
-
-
-
- yes
- maybe
- test_variable
- afilllist
-
-
- yes
- maybe
- test_variable
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/makedict/after.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/makedict/after.json
index 15742a7a0..211d4d153 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/makedict/after.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/makedict/after.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "no"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/makedict/base.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/makedict/base.json
index 728fe8b48..5a9fd2a82 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/makedict/base.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/makedict/base.json
@@ -1,8 +1,9 @@
{
"rougail.general.condition": "yes",
"rougail.general.condition2": "no",
- "services.test.files.file1.name": "/tmp/file1",
- "services.test.files.file1.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file1.name": "/tmp/file1",
+ "services.test_service.files.file1.source": "file1",
+ "services.test_service.files.file1.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/makedict/before.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/makedict/before.json
index 15742a7a0..211d4d153 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/makedict/before.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/makedict/before.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "no"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/result/rougail/00-base.yml
new file mode 100644
index 000000000..8f2300cd1
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/result/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: 'yes'
+ condition2:
+ type: string
+ description: No change
+ default: 'no'
+ test_variable:
+ type: string
+ description: No change
+ hidden: true
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition2 == "yes" or rougail.general.condition2
+ == "maybe" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/result/services/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/result/services/00-base.yml
new file mode 100644
index 000000000..16c140073
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file1:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "yes" or rougail.general.condition
+ == "maybe" %}false{% else %}true{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/tiramisu/base.py
index 43c2c0465..1da09885b 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("yes")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11])
-option_9.impl_set_information('source', "file1")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/tmp/file1")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/tiramisu/multi.py
new file mode 100644
index 000000000..b51c8e069
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_14 = StrOption(name="source", doc="source", default="file1")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
+optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_21 = StrOption(name="source", doc="source", default="file1")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_7, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
+optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param4/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/xml/00-base.xml
new file mode 100644
index 000000000..e0bc55974
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/xml/00-base.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ /tmp/file1
+
+
+
+
+
+ yes
+
+
+ no
+
+
+ no
+
+
+
+
+
+ yes
+ maybe
+ test_variable
+ afilllist
+
+
+ yes
+ maybe
+ test_variable
+ afilllist
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param4/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_multi_param4/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_multi_param4/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/00-base.xml
deleted file mode 100644
index 927f5011a..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/00-base.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
- /tmp/file1
-
-
-
-
-
- yes
-
-
- yes
-
-
- no
-
-
-
-
-
- yes
- maybe
- test_variable
- afilllist
-
-
- yes
- maybe
- test_variable
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/makedict/after.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/makedict/after.json
index dfe546f17..69823bd01 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/makedict/after.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/makedict/after.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "yes"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/makedict/base.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/makedict/base.json
index 3c256d760..d35d8f6eb 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/makedict/base.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/makedict/base.json
@@ -1,8 +1,9 @@
{
"rougail.general.condition": "yes",
"rougail.general.condition2": "yes",
- "services.test.files.file1.name": "/tmp/file1",
- "services.test.files.file1.activate": false,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file1.name": "/tmp/file1",
+ "services.test_service.files.file1.source": "file1",
+ "services.test_service.files.file1.activate": false,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/makedict/before.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/makedict/before.json
index dfe546f17..69823bd01 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/makedict/before.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/makedict/before.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "yes"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/result/rougail/00-base.yml
new file mode 100644
index 000000000..1953204c3
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/result/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: 'yes'
+ condition2:
+ type: string
+ description: No change
+ default: 'yes'
+ test_variable:
+ type: string
+ description: No change
+ hidden: true
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition2 == "yes" or rougail.general.condition2
+ == "maybe" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/result/services/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/result/services/00-base.yml
new file mode 100644
index 000000000..16c140073
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file1:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "yes" or rougail.general.condition
+ == "maybe" %}false{% else %}true{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/tiramisu/base.py
index 9daebb2f3..228fb75a8 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("yes")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11])
-option_9.impl_set_information('source', "file1")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/tmp/file1")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/tiramisu/multi.py
new file mode 100644
index 000000000..7995ce6a8
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_14 = StrOption(name="source", doc="source", default="file1")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
+optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_21 = StrOption(name="source", doc="source", default="file1")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_7, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
+optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param5/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/xml/00-base.xml
new file mode 100644
index 000000000..5d12e44a7
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/xml/00-base.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ /tmp/file1
+
+
+
+
+
+ yes
+
+
+ yes
+
+
+ no
+
+
+
+
+
+ yes
+ maybe
+ test_variable
+ afilllist
+
+
+ yes
+ maybe
+ test_variable
+ afilllist
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param5/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_multi_param5/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_multi_param5/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/00-base.xml
deleted file mode 100644
index 260193cd2..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/00-base.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
- /tmp/file1
-
-
-
-
-
- no
-
-
- yes
-
-
- no
-
-
-
-
-
- yes
- maybe
- test_variable
- afilllist
-
-
- yes
- maybe
- test_variable
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/makedict/after.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/makedict/after.json
index 1085d3ec8..2a9c2ffec 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/makedict/after.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/makedict/after.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "yes"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/makedict/base.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/makedict/base.json
index 089759dcd..e6b129e97 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/makedict/base.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/makedict/base.json
@@ -1,8 +1,9 @@
{
"rougail.general.condition": "no",
"rougail.general.condition2": "yes",
- "services.test.files.file1.name": "/tmp/file1",
- "services.test.files.file1.activate": false,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file1.name": "/tmp/file1",
+ "services.test_service.files.file1.source": "file1",
+ "services.test_service.files.file1.activate": false,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/makedict/before.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/makedict/before.json
index 1085d3ec8..2a9c2ffec 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/makedict/before.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/makedict/before.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "yes"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/result/rougail/00-base.yml
new file mode 100644
index 000000000..c610e80d4
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/result/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: 'no'
+ condition2:
+ type: string
+ description: No change
+ default: 'yes'
+ test_variable:
+ type: string
+ description: No change
+ hidden: true
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition2 == "yes" or rougail.general.condition2
+ == "maybe" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/result/services/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/result/services/00-base.yml
new file mode 100644
index 000000000..16c140073
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file1:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "yes" or rougail.general.condition
+ == "maybe" %}false{% else %}true{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/tiramisu/base.py
index a3bb9fa7c..132f89090 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("yes")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11])
-option_9.impl_set_information('source', "file1")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/tmp/file1")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/tiramisu/multi.py
new file mode 100644
index 000000000..e9c0493f4
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_14 = StrOption(name="source", doc="source", default="file1")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
+optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("yes"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("yes")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_21 = StrOption(name="source", doc="source", default="file1")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_7, notraisepropertyerror=True), 'expected_1': ParamValue(["yes", "maybe"])})))
+optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param6/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/xml/00-base.xml
new file mode 100644
index 000000000..0898e5dfa
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/xml/00-base.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ /tmp/file1
+
+
+
+
+
+ no
+
+
+ yes
+
+
+ no
+
+
+
+
+
+ yes
+ maybe
+ test_variable
+ afilllist
+
+
+ yes
+ maybe
+ test_variable
+ afilllist
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param6/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_multi_param6/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_multi_param6/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/00-base.xml
deleted file mode 100644
index 08b06a1ac..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/00-base.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
- /tmp/file1
-
-
-
-
-
- oui
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- maybe
- mode_conteneur_actif
- mode_conteneur_actif2
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/makedict/after.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/makedict/after.json
index 3d60ca6a6..44d5addf3 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/makedict/after.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/makedict/after.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": "oui"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/makedict/base.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/makedict/base.json
index 0190e5015..c66c2d1a2 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/makedict/base.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/makedict/base.json
@@ -1,7 +1,8 @@
{
"rougail.general.condition": "oui",
- "services.test.files.file1.name": "/tmp/file1",
- "services.test.files.file1.activate": false,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file1.name": "/tmp/file1",
+ "services.test_service.files.file1.source": "file1",
+ "services.test_service.files.file1.activate": false,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/makedict/before.json b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/makedict/before.json
index 3d60ca6a6..44d5addf3 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/makedict/before.json
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/makedict/before.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": "oui"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/result/rougail/00-base.yml
new file mode 100644
index 000000000..7aff4ee1f
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/result/rougail/00-base.yml
@@ -0,0 +1,24 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: oui
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" or rougail.general.condition
+ == "maybe" %}true{% else %}false{% endif %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" or rougail.general.condition
+ == "maybe" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/result/services/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/result/services/00-base.yml
new file mode 100644
index 000000000..6abe5cc6a
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file1:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" or rougail.general.condition
+ == "maybe" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py
index 0bd8f43d1..21a84718c 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("maybe")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11])
-option_9.impl_set_information('source', "file1")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/tmp/file1")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/tiramisu/multi.py
new file mode 100644
index 000000000..91d2a02ad
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_14 = StrOption(name="source", doc="source", default="file1")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
+optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("maybe")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_21 = StrOption(name="source", doc="source", default="file1")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
+optiondescription_18 = OptionDescription(name="file1", doc="file1", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/xml/00-base.xml
new file mode 100644
index 000000000..77829939d
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/xml/00-base.xml
@@ -0,0 +1,30 @@
+
+
+
+
+ /tmp/file1
+
+
+
+
+
+ oui
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ maybe
+ mode_conteneur_actif
+ mode_conteneur_actif2
+ afilllist
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_multi_param_disabled/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_multi_param_disabled/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_none/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_none/00-base.xml
deleted file mode 100644
index 800f3a579..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_none/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
-
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_none/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_none/result/rougail/00-base.yml
new file mode 100644
index 000000000..70b006087
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_none/result/rougail/00-base.yml
@@ -0,0 +1,24 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == null %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == null %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_none/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_none/tiramisu/base.py
index d20799682..78c59ae31 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_none/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_none/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue(None)}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue(None)}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_none/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_none/tiramisu/multi.py
new file mode 100644
index 000000000..9e0aa89cc
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_none/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue(None)}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue(None)}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue(None)}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue(None)}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_none/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_none/xml/00-base.xml
new file mode 100644
index 000000000..68f058cda
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_none/xml/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+
+ mode_conteneur_actif
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_none/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_none/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_none/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_none/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_twice/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_twice/00-base.xml
deleted file mode 100644
index 62b61a966..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_twice/00-base.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- no
-
-
- no
-
-
- no
-
-
-
-
- no
- my_var2
-
-
- no
- my_var3
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_twice/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_twice/result/rougail/00-base.yml
new file mode 100644
index 000000000..4478f1cd3
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_twice/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+my_var1:
+ default: 'no'
+my_var2:
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.my_var1 == "no" %}true{% else %}false{% endif %}'
+my_var3:
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.my_var2 == "no" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_twice/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_twice/tiramisu/base.py
index 4383b5944..2de6b07e9 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_twice/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_twice/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, todict=True, notraisepropertyerror=True), 'expected': ParamValue("no")}))}))
-option_4 = StrOption(name="my_var3", doc="my_var3", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("no")}))}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_3 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="my_var3", doc="my_var3", default="no", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_twice/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_twice/tiramisu/multi.py
new file mode 100644
index 000000000..efc299a5e
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_twice/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_1 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"mandatory", "normal"}))
+option_2 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_1, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
+option_3 = StrOption(name="my_var3", doc="my_var3", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_4 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
+option_6 = StrOption(name="my_var3", doc="my_var3", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_5, notraisepropertyerror=True), 'expected': ParamValue("no")}), func.calc_value_property_help)}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_twice/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_twice/xml/00-base.xml
new file mode 100644
index 000000000..56d38602a
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_twice/xml/00-base.xml
@@ -0,0 +1,24 @@
+
+
+
+
+ no
+
+
+ no
+
+
+ no
+
+
+
+
+ no
+ my_var2
+
+
+ no
+ my_var3
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_twice/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_twice/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_twice/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_twice/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_variable/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_variable/00-base.xml
deleted file mode 100644
index 72bcbb58b..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_variable/00-base.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
- tous
-
-
- tous
-
-
- non
-
-
-
-
-
- tous
- authentifié
- aucun
- condition
-
-
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_variable/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_variable/result/rougail/00-base.yml
new file mode 100644
index 000000000..439424a4a
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_variable/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ condition:
+ type: choice
+ description: No change
+ default: tous
+ choices:
+ - tous
+ - authentifié
+ - aucun
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: tous
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == rougail.general.mode_conteneur_actif
+ %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_variable/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_variable/tiramisu/base.py
index 911814f15..18e6327f8 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_variable/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_variable/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamOption(option_4)}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_variable/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_variable/tiramisu/multi.py
new file mode 100644
index 000000000..0575d9ac9
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_variable/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamOption(option_7)}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_variable/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_variable/xml/00-base.xml
new file mode 100644
index 000000000..c012eb433
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_variable/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ tous
+ tous
+ authentifié
+ aucun
+
+
+ tous
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_variable/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_variable/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_variable/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_variable/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_in_variable2/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_variable2/00-base.xml
deleted file mode 100644
index 8ffd2b0f4..000000000
--- a/tests/dictionaries_old/10load_disabled_if_in_variable2/00-base.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
- tous
-
-
- aucun
-
-
- non
-
-
-
-
-
- tous
- authentifié
- aucun
- condition
-
-
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_in_variable2/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_variable2/result/rougail/00-base.yml
new file mode 100644
index 000000000..7df5d7b3e
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_variable2/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ condition:
+ type: choice
+ description: No change
+ default: tous
+ choices:
+ - tous
+ - authentifié
+ - aucun
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: aucun
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == rougail.general.mode_conteneur_actif
+ %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_in_variable2/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_in_variable2/tiramisu/base.py
index e4ad9ae98..7d18ae234 100644
--- a/tests/dictionaries_old/10load_disabled_if_in_variable2/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_in_variable2/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="aucun", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamOption(option_4)}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_variable2/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_in_variable2/tiramisu/multi.py
new file mode 100644
index 000000000..c1a9e346f
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_variable2/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="aucun", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="aucun", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamOption(option_7)}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_disabled_if_in_variable2/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_in_variable2/xml/00-base.xml
new file mode 100644
index 000000000..7d10125bb
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_in_variable2/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ tous
+ tous
+ authentifié
+ aucun
+
+
+ aucun
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_in_variable2/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_in_variable2/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_in_variable2/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_in_variable2/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/00-base.xml b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/00-base.xml
deleted file mode 100644
index 71ba8102a..000000000
--- a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
- /tmp/file1
-
-
-
-
-
- no
-
-
- no
-
-
-
-
-
- no
- disable_variable
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/makedict/after.json b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/makedict/after.json
index 4fc26870c..d89acf031 100644
--- a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/makedict/after.json
+++ b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/makedict/after.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "no"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/makedict/base.json b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/makedict/base.json
index 431665f1e..6ee77b6f6 100644
--- a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/makedict/base.json
+++ b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/makedict/base.json
@@ -1,8 +1,9 @@
{
"rougail.general.condition": "no",
"rougail.general.disable_variable": "no",
- "services.test.files.file1.name": "/tmp/file1",
- "services.test.files.file1.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file1.name": "/tmp/file1",
+ "services.test_service.files.file1.source": "file1",
+ "services.test_service.files.file1.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/makedict/before.json b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/makedict/before.json
index 4fc26870c..d89acf031 100644
--- a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/makedict/before.json
+++ b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/makedict/before.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "no"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/result/rougail/00-base.yml
new file mode 100644
index 000000000..f1987cb8d
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: 'no'
+ disable_variable:
+ type: string
+ description: No change
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: '{% if __unknown == "no" %}false{% else %}true{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/result/services/00-base.yml b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/result/services/00-base.yml
new file mode 100644
index 000000000..a74358c25
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/result/services/00-base.yml
@@ -0,0 +1,7 @@
+test.service:
+ files:
+ /tmp/file1:
+ disabled:
+ type: jinja
+ jinja: '{% if __unknown == "no" %}false{% else %}true{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/tiramisu/base.py
index 5c1982e2e..2052009a1 100644
--- a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/tiramisu/base.py
@@ -1,27 +1,40 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="disable_variable", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-option_8 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10])
-option_8.impl_set_information('source', "file1")
-option_7 = OptionDescription(name="files", doc="files", children=[option_8])
+option_10 = FilenameOption(name="source", doc="source", default="/tmp/file1")
option_11 = BoolOption(name="activate", doc="activate", default=True)
-option_12 = BoolOption(name="manage", doc="manage", default=True)
-option_6 = OptionDescription(name="test", doc="test", children=[option_7, option_11, option_12])
-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])
+optiondescription_8 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_11])
+optiondescription_7 = OptionDescription(name="files", doc="files", children=[optiondescription_8])
+option_12 = BoolOption(name="activate", doc="activate", default=True)
+option_13 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_6 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_7, option_12, option_13])
+optiondescription_6.impl_set_information('type', "service")
+optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/tiramisu/multi.py
new file mode 100644
index 000000000..acca3b2cd
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/tiramisu/multi.py
@@ -0,0 +1,56 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="disable_variable", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_22 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_11 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_12 = StrOption(name="source", doc="source", default="file1")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_9 = OptionDescription(name="file1", doc="file1", children=[option_11, option_12, option_10])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_7 = BoolOption(name="activate", doc="activate", default=True)
+option_13 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_24 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_8, option_7, option_13])
+optiondescription_24.impl_set_information('type', "service")
+optiondescription_23 = OptionDescription(name="services", doc="services", children=[optiondescription_24], properties=frozenset({"hidden"}))
+optiondescription_21 = OptionDescription(name="1", doc="1", children=[optiondescription_22, optiondescription_23])
+option_5 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="disable_variable", doc="No change", default="no", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_26 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+option_18 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_19 = StrOption(name="source", doc="source", default="file1")
+option_17 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_16 = OptionDescription(name="file1", doc="file1", children=[option_18, option_19, option_17])
+optiondescription_15 = OptionDescription(name="files", doc="files", children=[optiondescription_16])
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+option_20 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_28 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_15, option_14, option_20])
+optiondescription_28.impl_set_information('type', "service")
+optiondescription_27 = OptionDescription(name="services", doc="services", children=[optiondescription_28], properties=frozenset({"hidden"}))
+optiondescription_25 = OptionDescription(name="2", doc="2", children=[optiondescription_26, optiondescription_27])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_21, optiondescription_25])
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/xml/00-base.xml
new file mode 100644
index 000000000..bc1bca988
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+ /tmp/file1
+
+
+
+
+
+ no
+
+
+ no
+
+
+
+
+
+ no
+ disable_variable
+ afilllist
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_not_in_fallback/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_not_in_fallback/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_not_in_fallback/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/00-base.xml b/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/00-base.xml
deleted file mode 100644
index 9946d5791..000000000
--- a/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/00-base.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
- afilllist
-
-
- non
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/result/rougail/00-base.yml
new file mode 100644
index 000000000..df2bf7dbf
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/result/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if __activer_client_ldap == "non" %}false{% else %}true{% endif %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled: true
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/tiramisu/base.py b/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/tiramisu/base.py
index d464e8b83..62f45f618 100644
--- a/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/tiramisu/multi.py b/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/tiramisu/multi.py
new file mode 100644
index 000000000..610858500
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/xml/00-base.xml b/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/xml/00-base.xml
new file mode 100644
index 000000000..13f876649
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/xml/00-base.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+ afilllist
+
+
+ non
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback_force/yml/00-base.yml b/tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabled_if_not_in_fallback_force/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabled_if_not_in_fallback_force/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabledifin_fallback/00-base.xml b/tests/dictionaries_old/10load_disabledifin_fallback/00-base.xml
deleted file mode 100644
index 8a0518386..000000000
--- a/tests/dictionaries_old/10load_disabledifin_fallback/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
- non
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/10load_disabledifin_fallback/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabledifin_fallback/result/rougail/00-base.yml
new file mode 100644
index 000000000..91d61f007
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabledifin_fallback/result/rougail/00-base.yml
@@ -0,0 +1,21 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if __activer_client_ldap == "non" %}true{% else %}false{% endif %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabledifin_fallback/tiramisu/base.py b/tests/dictionaries_old/10load_disabledifin_fallback/tiramisu/base.py
index a120d604a..df50a1d9a 100644
--- a/tests/dictionaries_old/10load_disabledifin_fallback/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabledifin_fallback/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_disabledifin_fallback/tiramisu/multi.py b/tests/dictionaries_old/10load_disabledifin_fallback/tiramisu/multi.py
new file mode 100644
index 000000000..a06f22fa1
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabledifin_fallback/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries/10load_disabledifin_fallback/xml/00-base.xml b/tests/dictionaries_old/10load_disabledifin_fallback/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/10load_disabledifin_fallback/xml/00-base.xml
rename to tests/dictionaries_old/10load_disabledifin_fallback/xml/00-base.xml
diff --git a/tests/dictionaries/10load_disabledifin_fallback/yml/00-base.yml b/tests/dictionaries_old/10load_disabledifin_fallback/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabledifin_fallback/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabledifin_fallback/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabledifin_fallback_force/00-base.xml b/tests/dictionaries_old/10load_disabledifin_fallback_force/00-base.xml
deleted file mode 100644
index 16602a40b..000000000
--- a/tests/dictionaries_old/10load_disabledifin_fallback_force/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
- non
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/10load_disabledifin_fallback_force/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabledifin_fallback_force/result/rougail/00-base.yml
new file mode 100644
index 000000000..91d61f007
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabledifin_fallback_force/result/rougail/00-base.yml
@@ -0,0 +1,21 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if __activer_client_ldap == "non" %}true{% else %}false{% endif %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabledifin_fallback_force/tiramisu/base.py b/tests/dictionaries_old/10load_disabledifin_fallback_force/tiramisu/base.py
index 9071c7e76..df50a1d9a 100644
--- a/tests/dictionaries_old/10load_disabledifin_fallback_force/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabledifin_fallback_force/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_disabledifin_fallback_force/tiramisu/multi.py b/tests/dictionaries_old/10load_disabledifin_fallback_force/tiramisu/multi.py
new file mode 100644
index 000000000..7ff4047ce
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabledifin_fallback_force/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_disabledifin_fallback_force/xml/00-base.xml b/tests/dictionaries_old/10load_disabledifin_fallback_force/xml/00-base.xml
new file mode 100644
index 000000000..1a6fd8acb
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabledifin_fallback_force/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+
+
+ non
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/10load_disabledifin_fallback_force/yml/00-base.yml b/tests/dictionaries_old/10load_disabledifin_fallback_force/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabledifin_fallback_force/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabledifin_fallback_force/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_disabledifin_whithouttype/00-base.xml b/tests/dictionaries_old/10load_disabledifin_whithouttype/00-base.xml
deleted file mode 100644
index c94d39491..000000000
--- a/tests/dictionaries_old/10load_disabledifin_whithouttype/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_disabledifin_whithouttype/result/rougail/00-base.yml b/tests/dictionaries_old/10load_disabledifin_whithouttype/result/rougail/00-base.yml
new file mode 100644
index 000000000..57453550e
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabledifin_whithouttype/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_disabledifin_whithouttype/tiramisu/base.py b/tests/dictionaries_old/10load_disabledifin_whithouttype/tiramisu/base.py
index 9071c7e76..df50a1d9a 100644
--- a/tests/dictionaries_old/10load_disabledifin_whithouttype/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_disabledifin_whithouttype/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_disabledifin_whithouttype/tiramisu/multi.py b/tests/dictionaries_old/10load_disabledifin_whithouttype/tiramisu/multi.py
new file mode 100644
index 000000000..7ff4047ce
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabledifin_whithouttype/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_disabledifin_whithouttype/xml/00-base.xml b/tests/dictionaries_old/10load_disabledifin_whithouttype/xml/00-base.xml
new file mode 100644
index 000000000..2af7dc7d9
--- /dev/null
+++ b/tests/dictionaries_old/10load_disabledifin_whithouttype/xml/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/10load_disabledifin_whithouttype/yml/00-base.yml b/tests/dictionaries_old/10load_disabledifin_whithouttype/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_disabledifin_whithouttype/yml/00-base.yml
rename to tests/dictionaries_old/10load_disabledifin_whithouttype/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_emptyvalue/00-base.xml b/tests/dictionaries_old/10load_emptyvalue/00-base.xml
deleted file mode 100644
index 8e7d9ed6d..000000000
--- a/tests/dictionaries_old/10load_emptyvalue/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/10load_emptyvalue/__init__.py b/tests/dictionaries_old/10load_emptyvalue/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/10load_emptyvalue/makedict/after.json b/tests/dictionaries_old/10load_emptyvalue/makedict/after.json
deleted file mode 100644
index 7539982e7..000000000
--- a/tests/dictionaries_old/10load_emptyvalue/makedict/after.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": null
- },
- "rougail.general.mode_conteneur_actif2": {
- "owner": "default",
- "value": null
- }
-}
diff --git a/tests/dictionaries_old/10load_emptyvalue/makedict/base.json b/tests/dictionaries_old/10load_emptyvalue/makedict/base.json
deleted file mode 100644
index 121c737e6..000000000
--- a/tests/dictionaries_old/10load_emptyvalue/makedict/base.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": null,
- "rougail.general.mode_conteneur_actif2": null
-}
diff --git a/tests/dictionaries_old/10load_emptyvalue/makedict/before.json b/tests/dictionaries_old/10load_emptyvalue/makedict/before.json
deleted file mode 100644
index 7539982e7..000000000
--- a/tests/dictionaries_old/10load_emptyvalue/makedict/before.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": null
- },
- "rougail.general.mode_conteneur_actif2": {
- "owner": "default",
- "value": null
- }
-}
diff --git a/tests/dictionaries_old/10load_emptyvalue/tiramisu/base.py b/tests/dictionaries_old/10load_emptyvalue/tiramisu/base.py
deleted file mode 100644
index 992b27a5e..000000000
--- a/tests/dictionaries_old/10load_emptyvalue/tiramisu/base.py
+++ /dev/null
@@ -1,18 +0,0 @@
-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 tiramisu4 import *
-except:
- from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"normal"}))
-option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
diff --git a/tests/dictionaries_old/10load_frozenifin/00-base.xml b/tests/dictionaries_old/10load_frozenifin/00-base.xml
deleted file mode 100644
index 7e7959f64..000000000
--- a/tests/dictionaries_old/10load_frozenifin/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_frozenifin/result/rougail/00-base.yml b/tests/dictionaries_old/10load_frozenifin/result/rougail/00-base.yml
new file mode 100644
index 000000000..191b34379
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_frozenifin/tiramisu/base.py b/tests/dictionaries_old/10load_frozenifin/tiramisu/base.py
index ba403c195..df50a1d9a 100644
--- a/tests/dictionaries_old/10load_frozenifin/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_frozenifin/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_frozenifin/tiramisu/multi.py b/tests/dictionaries_old/10load_frozenifin/tiramisu/multi.py
new file mode 100644
index 000000000..47d705f0a
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_frozenifin/xml/00-base.xml b/tests/dictionaries_old/10load_frozenifin/xml/00-base.xml
new file mode 100644
index 000000000..bc7588156
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin/xml/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/10load_frozenifin/yml/00-base.yml b/tests/dictionaries_old/10load_frozenifin/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_frozenifin/yml/00-base.yml
rename to tests/dictionaries_old/10load_frozenifin/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_frozenifin_auto/00-base.xml b/tests/dictionaries_old/10load_frozenifin_auto/00-base.xml
deleted file mode 100644
index 1d11682ab..000000000
--- a/tests/dictionaries_old/10load_frozenifin_auto/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
- non
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/10load_frozenifin_auto/result/rougail/00-base.yml b/tests/dictionaries_old/10load_frozenifin_auto/result/rougail/00-base.yml
new file mode 100644
index 000000000..c4e09ad10
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin_auto/result/rougail/00-base.yml
@@ -0,0 +1,24 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_val }}'
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_frozenifin_auto/tiramisu/base.py b/tests/dictionaries_old/10load_frozenifin_auto/tiramisu/base.py
index 48f961811..55947339a 100644
--- a/tests/dictionaries_old/10load_frozenifin_auto/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_frozenifin_auto/tiramisu/base.py
@@ -1,19 +1,61 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ \"non\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("non")))), properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_frozenifin_auto/tiramisu/multi.py b/tests/dictionaries_old/10load_frozenifin_auto/tiramisu/multi.py
new file mode 100644
index 000000000..6fdf48f36
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin_auto/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("non")))), properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("non")))), properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_frozenifin_auto/xml/00-base.xml b/tests/dictionaries_old/10load_frozenifin_auto/xml/00-base.xml
new file mode 100644
index 000000000..4fbc6af9a
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin_auto/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+
+
+ non
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/10load_frozenifin_auto/yml/00-base.yml b/tests/dictionaries_old/10load_frozenifin_auto/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_frozenifin_auto/yml/00-base.yml
rename to tests/dictionaries_old/10load_frozenifin_auto/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_frozenifin_multiparam/00-base.xml b/tests/dictionaries_old/10load_frozenifin_multiparam/00-base.xml
deleted file mode 100644
index 8a2d5d837..000000000
--- a/tests/dictionaries_old/10load_frozenifin_multiparam/00-base.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
- tous
-
-
- non
-
-
- non
-
-
-
-
-
- tous
- authentifié
- aucun
- condition
-
-
- tous
- authentifié
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_frozenifin_multiparam/result/rougail/00-base.yml b/tests/dictionaries_old/10load_frozenifin_multiparam/result/rougail/00-base.yml
new file mode 100644
index 000000000..56959df42
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin_multiparam/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ condition:
+ type: choice
+ description: No change
+ default: tous
+ choices:
+ - tous
+ - authentifié
+ - aucun
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "tous" or rougail.general.condition
+ == "authentifié" %}true{% else %}false{% endif %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "tous" or rougail.general.condition
+ == "authentifié" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_frozenifin_multiparam/tiramisu/base.py b/tests/dictionaries_old/10load_frozenifin_multiparam/tiramisu/base.py
index b0490689c..64d305495 100644
--- a/tests/dictionaries_old/10load_frozenifin_multiparam/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_frozenifin_multiparam/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("tous")})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("tous")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("tous")})), Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("authentifié")})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("authentifié")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("tous")})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("tous")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("tous")})), Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("authentifié")})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("authentifié")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_frozenifin_multiparam/tiramisu/multi.py b/tests/dictionaries_old/10load_frozenifin_multiparam/tiramisu/multi.py
new file mode 100644
index 000000000..8c9ab3698
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin_multiparam/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("tous")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("authentifié")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_frozenifin_multiparam/xml/00-base.xml b/tests/dictionaries_old/10load_frozenifin_multiparam/xml/00-base.xml
new file mode 100644
index 000000000..d05dd85d1
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin_multiparam/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ tous
+ tous
+ authentifié
+ aucun
+
+
+ non
+
+
+ non
+
+
+
+
+
+ tous
+ authentifié
+ mode_conteneur_actif
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/10load_frozenifin_multiparam/yml/00-base.yml b/tests/dictionaries_old/10load_frozenifin_multiparam/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_frozenifin_multiparam/yml/00-base.yml
rename to tests/dictionaries_old/10load_frozenifin_multiparam/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_frozenifin_noexist/00-base.xml b/tests/dictionaries_old/10load_frozenifin_noexist/00-base.xml
deleted file mode 100644
index 83cac4d60..000000000
--- a/tests/dictionaries_old/10load_frozenifin_noexist/00-base.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
- tous
-
-
- non
-
-
- non
-
-
-
-
-
- tous
- authentifié
- aucun
- condition
-
-
- oui
- non
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_frozenifin_noexist/result/rougail/00-base.yml b/tests/dictionaries_old/10load_frozenifin_noexist/result/rougail/00-base.yml
new file mode 100644
index 000000000..264aa7773
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin_noexist/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ condition:
+ type: choice
+ description: No change
+ default: tous
+ choices:
+ - tous
+ - authentifié
+ - aucun
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" or rougail.general.condition
+ == "non" %}true{% else %}false{% endif %}'
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" or rougail.general.condition
+ == "non" %}true{% else %}false{% endif %}'
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_frozenifin_noexist/tiramisu/base.py b/tests/dictionaries_old/10load_frozenifin_noexist/tiramisu/base.py
index 6894c2595..64d305495 100644
--- a/tests/dictionaries_old/10load_frozenifin_noexist/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_frozenifin_noexist/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_frozenifin_noexist/tiramisu/multi.py b/tests/dictionaries_old/10load_frozenifin_noexist/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/10load_frozenifin_noexist/tiramisu/multi.py
rename to tests/dictionaries_old/10load_frozenifin_noexist/tiramisu/multi.py
diff --git a/tests/dictionaries/10load_frozenifin_noexist/xml/00-base.xml b/tests/dictionaries_old/10load_frozenifin_noexist/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/10load_frozenifin_noexist/xml/00-base.xml
rename to tests/dictionaries_old/10load_frozenifin_noexist/xml/00-base.xml
diff --git a/tests/dictionaries/10load_frozenifin_noexist/yml/00-base.yml b/tests/dictionaries_old/10load_frozenifin_noexist/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_frozenifin_noexist/yml/00-base.yml
rename to tests/dictionaries_old/10load_frozenifin_noexist/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_frozenifin_variable/00-base.xml b/tests/dictionaries_old/10load_frozenifin_variable/00-base.xml
deleted file mode 100644
index 907f6450a..000000000
--- a/tests/dictionaries_old/10load_frozenifin_variable/00-base.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
- tous
-
-
- tous
-
-
- non
-
-
-
-
-
- tous
- authentifié
- aucun
- condition
-
-
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_frozenifin_variable/result/rougail/00-base.yml b/tests/dictionaries_old/10load_frozenifin_variable/result/rougail/00-base.yml
new file mode 100644
index 000000000..376abb295
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin_variable/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ condition:
+ type: choice
+ description: No change
+ default: tous
+ choices:
+ - tous
+ - authentifié
+ - aucun
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: tous
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == rougail.general.mode_conteneur_actif
+ %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_frozenifin_variable/tiramisu/base.py b/tests/dictionaries_old/10load_frozenifin_variable/tiramisu/base.py
index 92f6d2f1c..18e6327f8 100644
--- a/tests/dictionaries_old/10load_frozenifin_variable/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_frozenifin_variable/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamOption(option_4)})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamOption(option_4)})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamOption(option_4)}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_frozenifin_variable/tiramisu/multi.py b/tests/dictionaries_old/10load_frozenifin_variable/tiramisu/multi.py
new file mode 100644
index 000000000..cf4638236
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin_variable/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamOption(option_3)}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamOption(option_7)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamOption(option_7)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamOption(option_7)}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_frozenifin_variable/xml/00-base.xml b/tests/dictionaries_old/10load_frozenifin_variable/xml/00-base.xml
new file mode 100644
index 000000000..6075fc780
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifin_variable/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ tous
+ tous
+ authentifié
+ aucun
+
+
+ tous
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/10load_frozenifin_variable/yml/00-base.yml b/tests/dictionaries_old/10load_frozenifin_variable/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_frozenifin_variable/yml/00-base.yml
rename to tests/dictionaries_old/10load_frozenifin_variable/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_frozenifnotin/00-base.xml b/tests/dictionaries_old/10load_frozenifnotin/00-base.xml
deleted file mode 100644
index cbd3f7f22..000000000
--- a/tests/dictionaries_old/10load_frozenifnotin/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_frozenifnotin/result/rougail/00-base.yml b/tests/dictionaries_old/10load_frozenifnotin/result/rougail/00-base.yml
new file mode 100644
index 000000000..30f71cedb
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifnotin/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}false{% else %}true{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}false{% else %}true{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_frozenifnotin/tiramisu/base.py b/tests/dictionaries_old/10load_frozenifnotin/tiramisu/base.py
index aabc85e9a..df50a1d9a 100644
--- a/tests/dictionaries_old/10load_frozenifnotin/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_frozenifnotin/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_frozenifnotin/tiramisu/multi.py b/tests/dictionaries_old/10load_frozenifnotin/tiramisu/multi.py
new file mode 100644
index 000000000..15b1ee754
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifnotin/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui"), 'reverse_condition': ParamValue(True)}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_frozenifnotin/xml/00-base.xml b/tests/dictionaries_old/10load_frozenifnotin/xml/00-base.xml
new file mode 100644
index 000000000..95ba47792
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifnotin/xml/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/10load_frozenifnotin/yml/00-base.yml b/tests/dictionaries_old/10load_frozenifnotin/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_frozenifnotin/yml/00-base.yml
rename to tests/dictionaries_old/10load_frozenifnotin/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_frozenifnotin_noexist/00-base.xml b/tests/dictionaries_old/10load_frozenifnotin_noexist/00-base.xml
deleted file mode 100644
index 931722a45..000000000
--- a/tests/dictionaries_old/10load_frozenifnotin_noexist/00-base.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
- tous
-
-
- non
-
-
- non
-
-
-
-
-
- tous
- authentifié
- aucun
- condition
-
-
- oui
- non
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_frozenifnotin_noexist/result/rougail/00-base.yml b/tests/dictionaries_old/10load_frozenifnotin_noexist/result/rougail/00-base.yml
new file mode 100644
index 000000000..19f7fa666
--- /dev/null
+++ b/tests/dictionaries_old/10load_frozenifnotin_noexist/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ condition:
+ type: choice
+ description: No change
+ default: tous
+ choices:
+ - tous
+ - authentifié
+ - aucun
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" or rougail.general.condition
+ == "non" %}false{% else %}true{% endif %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" or rougail.general.condition
+ == "non" %}false{% else %}true{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_frozenifnotin_noexist/tiramisu/base.py b/tests/dictionaries_old/10load_frozenifnotin_noexist/tiramisu/base.py
index 6894c2595..64d305495 100644
--- a/tests/dictionaries_old/10load_frozenifnotin_noexist/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_frozenifnotin_noexist/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_frozenifnotin_noexist/tiramisu/multi.py b/tests/dictionaries_old/10load_frozenifnotin_noexist/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/10load_frozenifnotin_noexist/tiramisu/multi.py
rename to tests/dictionaries_old/10load_frozenifnotin_noexist/tiramisu/multi.py
diff --git a/tests/dictionaries/10load_frozenifnotin_noexist/xml/00-base.xml b/tests/dictionaries_old/10load_frozenifnotin_noexist/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/10load_frozenifnotin_noexist/xml/00-base.xml
rename to tests/dictionaries_old/10load_frozenifnotin_noexist/xml/00-base.xml
diff --git a/tests/dictionaries/10load_frozenifnotin_noexist/yml/00-base.yml b/tests/dictionaries_old/10load_frozenifnotin_noexist/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_frozenifnotin_noexist/yml/00-base.yml
rename to tests/dictionaries_old/10load_frozenifnotin_noexist/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_hidden_if_empty_family/00-base.xml b/tests/dictionaries_old/10load_hidden_if_empty_family/00-base.xml
deleted file mode 100644
index d1cdaf066..000000000
--- a/tests/dictionaries_old/10load_hidden_if_empty_family/00-base.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
- general2
-
-
-
diff --git a/tests/dictionaries_old/10load_hidden_if_empty_family/result/rougail/00-base.yml b/tests/dictionaries_old/10load_hidden_if_empty_family/result/rougail/00-base.yml
new file mode 100644
index 000000000..38ba06fcb
--- /dev/null
+++ b/tests/dictionaries_old/10load_hidden_if_empty_family/result/rougail/00-base.yml
@@ -0,0 +1,29 @@
+general:
+ description: Général
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+general2:
+ description: Général2
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_hidden_if_empty_family/tiramisu/base.py b/tests/dictionaries_old/10load_hidden_if_empty_family/tiramisu/base.py
index 486244176..3d4c7a6ee 100644
--- a/tests/dictionaries_old/10load_hidden_if_empty_family/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_hidden_if_empty_family/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="Général", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="Général", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_hidden_if_empty_family/tiramisu/multi.py b/tests/dictionaries_old/10load_hidden_if_empty_family/tiramisu/multi.py
new file mode 100644
index 000000000..19beadef1
--- /dev/null
+++ b/tests/dictionaries_old/10load_hidden_if_empty_family/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="Général", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_9 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_6 = OptionDescription(name="general", doc="Général", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/10load_hidden_if_empty_family/xml/00-base.xml b/tests/dictionaries_old/10load_hidden_if_empty_family/xml/00-base.xml
new file mode 100644
index 000000000..0df3cf0e3
--- /dev/null
+++ b/tests/dictionaries_old/10load_hidden_if_empty_family/xml/00-base.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+ general2
+
+
+
diff --git a/tests/dictionaries/10load_hidden_if_empty_family/yml/00-base.yml b/tests/dictionaries_old/10load_hidden_if_empty_family/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_hidden_if_empty_family/yml/00-base.yml
rename to tests/dictionaries_old/10load_hidden_if_empty_family/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_hidden_if_family/00-base.xml b/tests/dictionaries_old/10load_hidden_if_family/00-base.xml
deleted file mode 100644
index 8442dc855..000000000
--- a/tests/dictionaries_old/10load_hidden_if_family/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
- general2
-
-
-
diff --git a/tests/dictionaries_old/10load_hidden_if_family/result/rougail/00-base.yml b/tests/dictionaries_old/10load_hidden_if_family/result/rougail/00-base.yml
new file mode 100644
index 000000000..306f00a1f
--- /dev/null
+++ b/tests/dictionaries_old/10load_hidden_if_family/result/rougail/00-base.yml
@@ -0,0 +1,34 @@
+general:
+ description: Général
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+general2:
+ description: Général2
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_hidden_if_family/tiramisu/base.py b/tests/dictionaries_old/10load_hidden_if_family/tiramisu/base.py
index aac27bf9e..0054b4d7b 100644
--- a/tests/dictionaries_old/10load_hidden_if_family/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_hidden_if_family/tiramisu/base.py
@@ -1,21 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="Général", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_7 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_6 = OptionDescription(name="general2", doc="Général2", children=[option_7], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="Général", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+option_7 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="general2", doc="Général2", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_hidden_if_family/tiramisu/multi.py b/tests/dictionaries_old/10load_hidden_if_family/tiramisu/multi.py
new file mode 100644
index 000000000..cb8f57999
--- /dev/null
+++ b/tests/dictionaries_old/10load_hidden_if_family/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="Général", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general2", doc="Général2", children=[option_6], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_10 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_7 = OptionDescription(name="general", doc="Général", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+option_12 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_11 = OptionDescription(name="general2", doc="Général2", children=[option_12], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/10load_hidden_if_family/xml/00-base.xml b/tests/dictionaries_old/10load_hidden_if_family/xml/00-base.xml
new file mode 100644
index 000000000..682bc8f39
--- /dev/null
+++ b/tests/dictionaries_old/10load_hidden_if_family/xml/00-base.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+ general2
+
+
+
diff --git a/tests/dictionaries/10load_hidden_if_family/yml/00-base.yml b/tests/dictionaries_old/10load_hidden_if_family/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_hidden_if_family/yml/00-base.yml
rename to tests/dictionaries_old/10load_hidden_if_family/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_leadership/00-base.xml b/tests/dictionaries_old/10load_leadership/00-base.xml
deleted file mode 100644
index 2b7726a56..000000000
--- a/tests/dictionaries_old/10load_leadership/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10load_leadership/makedict/after.json b/tests/dictionaries_old/10load_leadership/makedict/after.json
index f77abfc09..f7be8deb1 100644
--- a/tests/dictionaries_old/10load_leadership/makedict/after.json
+++ b/tests/dictionaries_old/10load_leadership/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.general1.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10load_leadership/makedict/before.json b/tests/dictionaries_old/10load_leadership/makedict/before.json
index f77abfc09..f7be8deb1 100644
--- a/tests/dictionaries_old/10load_leadership/makedict/before.json
+++ b/tests/dictionaries_old/10load_leadership/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.general1.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10load_leadership/result/rougail/00-base.yml b/tests/dictionaries_old/10load_leadership/result/rougail/00-base.yml
new file mode 100644
index 000000000..6e211d24a
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_leadership/tiramisu/base.py b/tests/dictionaries_old/10load_leadership/tiramisu/base.py
index 9a08a5029..510103d92 100644
--- a/tests/dictionaries_old/10load_leadership/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_leadership/tiramisu/base.py
@@ -1,22 +1,65 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True)
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_7)))), properties=frozenset({"normal"}))
-option_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-option_4 = OptionDescription(name="general1", doc="general1", children=[option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leader.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leader.follower2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.general1.leader.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_leadership/tiramisu/multi.py b/tests/dictionaries_old/10load_leadership/tiramisu/multi.py
new file mode 100644
index 000000000..26bdb6957
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership/tiramisu/multi.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"normal"}))
+option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_13 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_14 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_13)))), properties=frozenset({"normal"}))
+optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="general1", doc="general1", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
diff --git a/tests/dictionaries_old/10load_leadership/xml/00-base.xml b/tests/dictionaries_old/10load_leadership/xml/00-base.xml
new file mode 100644
index 000000000..a3614dc10
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ follower1
+ follower2
+
+
+
diff --git a/tests/dictionaries/10load_leadership/yml/00-base.yml b/tests/dictionaries_old/10load_leadership/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_leadership/yml/00-base.yml
rename to tests/dictionaries_old/10load_leadership/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_leadership_default_multi/00-base.xml b/tests/dictionaries_old/10load_leadership_default_multi/00-base.xml
deleted file mode 100644
index f84037546..000000000
--- a/tests/dictionaries_old/10load_leadership_default_multi/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
-
- value
-
-
-
-
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10load_leadership_default_multi/makedict/after.json b/tests/dictionaries_old/10load_leadership_default_multi/makedict/after.json
index bb1ba6d4a..613679936 100644
--- a/tests/dictionaries_old/10load_leadership_default_multi/makedict/after.json
+++ b/tests/dictionaries_old/10load_leadership_default_multi/makedict/after.json
@@ -8,13 +8,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10load_leadership_default_multi/makedict/before.json b/tests/dictionaries_old/10load_leadership_default_multi/makedict/before.json
index bb1ba6d4a..613679936 100644
--- a/tests/dictionaries_old/10load_leadership_default_multi/makedict/before.json
+++ b/tests/dictionaries_old/10load_leadership_default_multi/makedict/before.json
@@ -8,13 +8,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10load_leadership_default_multi/result/rougail/00-base.yml b/tests/dictionaries_old/10load_leadership_default_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..c24cb4088
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_default_multi/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default: value
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_leadership_default_multi/tiramisu/base.py b/tests/dictionaries_old/10load_leadership_default_multi/tiramisu/base.py
index 887208a93..240c7ff7e 100644
--- a/tests/dictionaries_old/10load_leadership_default_multi/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_leadership_default_multi/tiramisu/base.py
@@ -1,21 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True)
-option_6 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default="value", properties=frozenset({"mandatory", "normal"}))
option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-option_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_leadership_default_multi/tiramisu/multi.py b/tests/dictionaries_old/10load_leadership_default_multi/tiramisu/multi.py
new file mode 100644
index 000000000..66fbeddff
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_default_multi/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_5 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_11 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/10load_leadership_default_multi/xml/00-base.xml b/tests/dictionaries_old/10load_leadership_default_multi/xml/00-base.xml
new file mode 100644
index 000000000..8879a9c9f
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_default_multi/xml/00-base.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ non
+
+
+
+
+ value
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/10load_leadership_default_multi/yml/00-base.yml b/tests/dictionaries_old/10load_leadership_default_multi/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_leadership_default_multi/yml/00-base.yml
rename to tests/dictionaries_old/10load_leadership_default_multi/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_leadership_default_submulti/00-base.xml b/tests/dictionaries_old/10load_leadership_default_submulti/00-base.xml
deleted file mode 100644
index 13ff6f102..000000000
--- a/tests/dictionaries_old/10load_leadership_default_submulti/00-base.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
- non
-
-
- leader
-
-
- value
-
-
- value1
- value2
-
-
-
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10load_leadership_default_submulti/result/rougail/00-base.yml b/tests/dictionaries_old/10load_leadership_default_submulti/result/rougail/00-base.yml
new file mode 100644
index 000000000..1d2bcef7f
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_default_submulti/result/rougail/00-base.yml
@@ -0,0 +1,30 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - leader
+ follower1:
+ type: string
+ description: follower1
+ multi: true
+ default:
+ - value
+ follower2:
+ type: string
+ description: follower2
+ multi: true
+ default:
+ - value1
+ - value2
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_leadership_default_submulti/tiramisu/base.py b/tests/dictionaries_old/10load_leadership_default_submulti/tiramisu/base.py
index ca01f8d3d..30e7ea6c9 100644
--- a/tests/dictionaries_old/10load_leadership_default_submulti/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_leadership_default_submulti/tiramisu/base.py
@@ -1,21 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=['leader'], properties=frozenset({"mandatory"}))
-option_6 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "normal"}))
-option_7 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "normal"}))
-option_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = StrOption(name="leader", doc="leader", multi=True, default=['leader'], properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=submulti, default=['value'], default_multi=['value'], properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=submulti, default=['value1', 'value2'], default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_leadership_default_submulti/tiramisu/multi.py b/tests/dictionaries_old/10load_leadership_default_submulti/tiramisu/multi.py
new file mode 100644
index 000000000..f9799e0a0
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_default_submulti/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="leader", doc="leader", multi=True, default=['leader'], properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="leader", doc="leader", multi=True, default=['leader'], properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "normal"}))
+optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/10load_leadership_default_submulti/xml/00-base.xml b/tests/dictionaries_old/10load_leadership_default_submulti/xml/00-base.xml
new file mode 100644
index 000000000..c81767388
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_default_submulti/xml/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ non
+
+
+
+ leader
+
+
+ value
+
+
+ value1
+ value2
+
+
+
+
+
+
diff --git a/tests/dictionaries/10load_leadership_default_submulti/yml/00-base.yml b/tests/dictionaries_old/10load_leadership_default_submulti/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_leadership_default_submulti/yml/00-base.yml
rename to tests/dictionaries_old/10load_leadership_default_submulti/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_leadership_defaultmulti_leader/00-base.xml b/tests/dictionaries_old/10load_leadership_defaultmulti_leader/00-base.xml
deleted file mode 100644
index 921e2ad62..000000000
--- a/tests/dictionaries_old/10load_leadership_defaultmulti_leader/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
- value
-
-
-
-
-
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10load_leadership_defaultmulti_leader/result/rougail/00-base.yml b/tests/dictionaries_old/10load_leadership_defaultmulti_leader/result/rougail/00-base.yml
new file mode 100644
index 000000000..4ba8fa051
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_defaultmulti_leader/result/rougail/00-base.yml
@@ -0,0 +1,23 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - value
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_leadership_defaultmulti_leader/tiramisu/base.py b/tests/dictionaries_old/10load_leadership_defaultmulti_leader/tiramisu/base.py
index a0b43a1b3..9b9072ece 100644
--- a/tests/dictionaries_old/10load_leadership_defaultmulti_leader/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_leadership_defaultmulti_leader/tiramisu/base.py
@@ -1,21 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True, default=['value'], properties=frozenset({"mandatory"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, default=['value'], properties=frozenset({"mandatory", "normal"}))
option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-option_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_leadership_defaultmulti_leader/tiramisu/multi.py b/tests/dictionaries_old/10load_leadership_defaultmulti_leader/tiramisu/multi.py
new file mode 100644
index 000000000..8f6e6ed22
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_defaultmulti_leader/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="leader", doc="leader", multi=True, default=['value'], properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=['non'], default_multi="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="leader", doc="leader", multi=True, default=['value'], properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_12 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/10load_leadership_defaultmulti_leader/xml/00-base.xml b/tests/dictionaries_old/10load_leadership_defaultmulti_leader/xml/00-base.xml
new file mode 100644
index 000000000..fe60cee74
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_defaultmulti_leader/xml/00-base.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ non
+
+
+
+ value
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/10load_leadership_defaultmulti_leader/yml/00-base.yml b/tests/dictionaries_old/10load_leadership_defaultmulti_leader/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_leadership_defaultmulti_leader/yml/00-base.yml
rename to tests/dictionaries_old/10load_leadership_defaultmulti_leader/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_leadership_description/00-base.xml b/tests/dictionaries_old/10load_leadership_description/00-base.xml
deleted file mode 100644
index 87b476171..000000000
--- a/tests/dictionaries_old/10load_leadership_description/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10load_leadership_description/makedict/after.json b/tests/dictionaries_old/10load_leadership_description/makedict/after.json
index f77abfc09..f7be8deb1 100644
--- a/tests/dictionaries_old/10load_leadership_description/makedict/after.json
+++ b/tests/dictionaries_old/10load_leadership_description/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.general1.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10load_leadership_description/makedict/before.json b/tests/dictionaries_old/10load_leadership_description/makedict/before.json
index f77abfc09..f7be8deb1 100644
--- a/tests/dictionaries_old/10load_leadership_description/makedict/before.json
+++ b/tests/dictionaries_old/10load_leadership_description/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.general1.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10load_leadership_description/result/rougail/00-base.yml b/tests/dictionaries_old/10load_leadership_description/result/rougail/00-base.yml
new file mode 100644
index 000000000..b17bdc622
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_description/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: other description
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_leadership_description/tiramisu/base.py b/tests/dictionaries_old/10load_leadership_description/tiramisu/base.py
index 3821bfb69..188ee1321 100644
--- a/tests/dictionaries_old/10load_leadership_description/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_leadership_description/tiramisu/base.py
@@ -1,22 +1,65 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True)
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_7)))), properties=frozenset({"normal"}))
-option_5 = Leadership(name="leader", doc="other description", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-option_4 = OptionDescription(name="general1", doc="general1", children=[option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leader.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leader.follower2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.general1.leader.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leader", doc="other description", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_leadership_description/tiramisu/multi.py b/tests/dictionaries_old/10load_leadership_description/tiramisu/multi.py
new file mode 100644
index 000000000..388eff47c
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_description/tiramisu/multi.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="other description", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"normal"}))
+option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_13 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_14 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_13)))), properties=frozenset({"normal"}))
+optiondescription_11 = Leadership(name="leader", doc="other description", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="general1", doc="general1", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
diff --git a/tests/dictionaries_old/10load_leadership_description/xml/00-base.xml b/tests/dictionaries_old/10load_leadership_description/xml/00-base.xml
new file mode 100644
index 000000000..72e577f9c
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_description/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ follower1
+ follower2
+
+
+
diff --git a/tests/dictionaries/10load_leadership_description/yml/00-base.yml b/tests/dictionaries_old/10load_leadership_description/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_leadership_description/yml/00-base.yml
rename to tests/dictionaries_old/10load_leadership_description/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_leadership_name/00-base.xml b/tests/dictionaries_old/10load_leadership_name/00-base.xml
deleted file mode 100644
index 2af2d0d45..000000000
--- a/tests/dictionaries_old/10load_leadership_name/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10load_leadership_name/makedict/after.json b/tests/dictionaries_old/10load_leadership_name/makedict/after.json
index c38c753a1..9a3e9d32a 100644
--- a/tests/dictionaries_old/10load_leadership_name/makedict/after.json
+++ b/tests/dictionaries_old/10load_leadership_name/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.general1.other_name.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.other_name.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.other_name.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10load_leadership_name/makedict/before.json b/tests/dictionaries_old/10load_leadership_name/makedict/before.json
index c38c753a1..9a3e9d32a 100644
--- a/tests/dictionaries_old/10load_leadership_name/makedict/before.json
+++ b/tests/dictionaries_old/10load_leadership_name/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.general1.other_name.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.other_name.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.other_name.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10load_leadership_name/result/rougail/00-base.yml b/tests/dictionaries_old/10load_leadership_name/result/rougail/00-base.yml
new file mode 100644
index 000000000..f677d09a0
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_name/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ other_name:
+ description: other_name
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.other_name.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_leadership_name/tiramisu/base.py b/tests/dictionaries_old/10load_leadership_name/tiramisu/base.py
index 65072294c..b3a2d993b 100644
--- a/tests/dictionaries_old/10load_leadership_name/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_leadership_name/tiramisu/base.py
@@ -1,22 +1,65 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general1.other_name.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['rougail.general1.other_name.follower2'] = "{{ rougail.general1.other_name.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True)
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_7)))), properties=frozenset({"normal"}))
-option_5 = Leadership(name="other_name", doc="other_name", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-option_4 = OptionDescription(name="general1", doc="general1", children=[option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.other_name.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.other_name.follower2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True), 'rougail.general1.other_name.follower1': ParamOption(option_7)})), properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="other_name", doc="other_name", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_leadership_name/tiramisu/multi.py b/tests/dictionaries_old/10load_leadership_name/tiramisu/multi.py
new file mode 100644
index 000000000..c772c75eb
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_name/tiramisu/multi.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="other_name", doc="other_name", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"normal"}))
+option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_13 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_14 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_13)))), properties=frozenset({"normal"}))
+optiondescription_11 = Leadership(name="other_name", doc="other_name", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="general1", doc="general1", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
diff --git a/tests/dictionaries_old/10load_leadership_name/xml/00-base.xml b/tests/dictionaries_old/10load_leadership_name/xml/00-base.xml
new file mode 100644
index 000000000..ff11ffb6d
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_name/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ follower1
+ follower2
+
+
+
diff --git a/tests/dictionaries/10load_leadership_name/yml/00-base.yml b/tests/dictionaries_old/10load_leadership_name/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_leadership_name/yml/00-base.yml
rename to tests/dictionaries_old/10load_leadership_name/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_leadership_submulti/00-base.xml b/tests/dictionaries_old/10load_leadership_submulti/00-base.xml
deleted file mode 100644
index caa3dbeec..000000000
--- a/tests/dictionaries_old/10load_leadership_submulti/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10load_leadership_submulti/makedict/after.json b/tests/dictionaries_old/10load_leadership_submulti/makedict/after.json
index f77abfc09..f7be8deb1 100644
--- a/tests/dictionaries_old/10load_leadership_submulti/makedict/after.json
+++ b/tests/dictionaries_old/10load_leadership_submulti/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.general1.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10load_leadership_submulti/makedict/before.json b/tests/dictionaries_old/10load_leadership_submulti/makedict/before.json
index f77abfc09..f7be8deb1 100644
--- a/tests/dictionaries_old/10load_leadership_submulti/makedict/before.json
+++ b/tests/dictionaries_old/10load_leadership_submulti/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.general1.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general1.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general1.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10load_leadership_submulti/result/rougail/00-base.yml b/tests/dictionaries_old/10load_leadership_submulti/result/rougail/00-base.yml
new file mode 100644
index 000000000..1c4a4b105
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_submulti/result/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+ multi: true
+ default:
+ type: jinja
+ jinja: '{{ rougail.general1.leader.follower1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_leadership_submulti/tiramisu/base.py b/tests/dictionaries_old/10load_leadership_submulti/tiramisu/base.py
index aad38f582..6300aa946 100644
--- a/tests/dictionaries_old/10load_leadership_submulti/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_leadership_submulti/tiramisu/base.py
@@ -1,22 +1,65 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+dict_env['rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True)
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
-option_8 = StrOption(name="follower2", doc="follower2", multi=submulti, default=[Calculation(func.calc_val, Params((ParamOption(option_7))))], properties=frozenset({"normal"}))
-option_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-option_4 = OptionDescription(name="general1", doc="general1", children=[option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leader.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=submulti, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general1.leader.follower2), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(submulti), 'rougail.general1.leader.follower1': ParamOption(option_7)})), properties=frozenset({"normal", "notempty"}))
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="general1", doc="general1", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_leadership_submulti/tiramisu/multi.py b/tests/dictionaries_old/10load_leadership_submulti/tiramisu/multi.py
new file mode 100644
index 000000000..6c0fdbe5c
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_submulti/tiramisu/multi.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=submulti, default=[Calculation(func.calc_val, Params((ParamOption(option_6))))], properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9], properties=frozenset({"normal"}))
+option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_13 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal"}))
+option_14 = StrOption(name="follower2", doc="follower2", multi=submulti, default=[Calculation(func.calc_val, Params((ParamOption(option_13))))], properties=frozenset({"normal"}))
+optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="general1", doc="general1", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8, optiondescription_10], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
diff --git a/tests/dictionaries_old/10load_leadership_submulti/xml/00-base.xml b/tests/dictionaries_old/10load_leadership_submulti/xml/00-base.xml
new file mode 100644
index 000000000..ccf0a7c87
--- /dev/null
+++ b/tests/dictionaries_old/10load_leadership_submulti/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ follower1
+ follower2
+
+
+
diff --git a/tests/dictionaries/10load_leadership_submulti/yml/00-base.yml b/tests/dictionaries_old/10load_leadership_submulti/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_leadership_submulti/yml/00-base.yml
rename to tests/dictionaries_old/10load_leadership_submulti/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_mandatoryifin/00-base.xml b/tests/dictionaries_old/10load_mandatoryifin/00-base.xml
deleted file mode 100644
index 810f14f77..000000000
--- a/tests/dictionaries_old/10load_mandatoryifin/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_mandatoryifin/result/rougail/00-base.yml b/tests/dictionaries_old/10load_mandatoryifin/result/rougail/00-base.yml
new file mode 100644
index 000000000..67737342b
--- /dev/null
+++ b/tests/dictionaries_old/10load_mandatoryifin/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ mandatory:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ mandatory:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_mandatoryifin/tiramisu/base.py b/tests/dictionaries_old/10load_mandatoryifin/tiramisu/base.py
index d4278eac6..64c30edfe 100644
--- a/tests/dictionaries_old/10load_mandatoryifin/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_mandatoryifin/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('mandatory'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('mandatory'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_mandatoryifin/tiramisu/multi.py b/tests/dictionaries_old/10load_mandatoryifin/tiramisu/multi.py
new file mode 100644
index 000000000..ed04115fa
--- /dev/null
+++ b/tests/dictionaries_old/10load_mandatoryifin/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('mandatory'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('mandatory'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('mandatory'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('mandatory'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10load_mandatoryifin/xml/00-base.xml b/tests/dictionaries_old/10load_mandatoryifin/xml/00-base.xml
new file mode 100644
index 000000000..4aed495db
--- /dev/null
+++ b/tests/dictionaries_old/10load_mandatoryifin/xml/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/10load_mandatoryifin/yml/00-base.yml b/tests/dictionaries_old/10load_mandatoryifin/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_mandatoryifin/yml/00-base.yml
rename to tests/dictionaries_old/10load_mandatoryifin/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_mandatoryifnotin_noexist/00-base.xml b/tests/dictionaries_old/10load_mandatoryifnotin_noexist/00-base.xml
deleted file mode 100644
index c1bc13ee1..000000000
--- a/tests/dictionaries_old/10load_mandatoryifnotin_noexist/00-base.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
- tous
-
-
- non
-
-
- non
-
-
-
-
-
- tous
- authentifié
- aucun
- condition
-
-
- oui
- non
- mode_conteneur_actif
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/10load_mandatoryifnotin_noexist/result/rougail/00-base.yml b/tests/dictionaries_old/10load_mandatoryifnotin_noexist/result/rougail/00-base.yml
new file mode 100644
index 000000000..bc2d98d6c
--- /dev/null
+++ b/tests/dictionaries_old/10load_mandatoryifnotin_noexist/result/rougail/00-base.yml
@@ -0,0 +1,28 @@
+general:
+ condition:
+ type: choice
+ description: No change
+ default: tous
+ choices:
+ - tous
+ - authentifié
+ - aucun
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mandatory:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" or rougail.general.condition
+ == "non" %}false{% else %}true{% endif %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mandatory:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" or rougail.general.condition
+ == "non" %}false{% else %}true{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_mandatoryifnotin_noexist/tiramisu/base.py b/tests/dictionaries_old/10load_mandatoryifnotin_noexist/tiramisu/base.py
index 6894c2595..ab03c0cf2 100644
--- a/tests/dictionaries_old/10load_mandatoryifnotin_noexist/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_mandatoryifnotin_noexist/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10load_mandatoryifnotin_noexist/tiramisu/multi.py b/tests/dictionaries_old/10load_mandatoryifnotin_noexist/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/10load_mandatoryifnotin_noexist/tiramisu/multi.py
rename to tests/dictionaries_old/10load_mandatoryifnotin_noexist/tiramisu/multi.py
diff --git a/tests/dictionaries/10load_mandatoryifnotin_noexist/xml/00-base.xml b/tests/dictionaries_old/10load_mandatoryifnotin_noexist/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/10load_mandatoryifnotin_noexist/xml/00-base.xml
rename to tests/dictionaries_old/10load_mandatoryifnotin_noexist/xml/00-base.xml
diff --git a/tests/dictionaries/10load_mandatoryifnotin_noexist/yml/00-base.yml b/tests/dictionaries_old/10load_mandatoryifnotin_noexist/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_mandatoryifnotin_noexist/yml/00-base.yml
rename to tests/dictionaries_old/10load_mandatoryifnotin_noexist/yml/00-base.yml
diff --git a/tests/dictionaries_old/10load_multivalue/00-base.xml b/tests/dictionaries_old/10load_multivalue/00-base.xml
deleted file mode 100644
index 298d92927..000000000
--- a/tests/dictionaries_old/10load_multivalue/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
- non
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/10load_multivalue/result/rougail/00-base.yml b/tests/dictionaries_old/10load_multivalue/result/rougail/00-base.yml
new file mode 100644
index 000000000..641ad2f39
--- /dev/null
+++ b/tests/dictionaries_old/10load_multivalue/result/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ multi: true
+ default:
+ - non
+ - oui
+version: '1.0'
diff --git a/tests/dictionaries_old/10load_multivalue/tiramisu/base.py b/tests/dictionaries_old/10load_multivalue/tiramisu/base.py
index da961aaf5..62dedfb22 100644
--- a/tests/dictionaries_old/10load_multivalue/tiramisu/base.py
+++ b/tests/dictionaries_old/10load_multivalue/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=['non', 'oui'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10load_multivalue/tiramisu/multi.py b/tests/dictionaries_old/10load_multivalue/tiramisu/multi.py
new file mode 100644
index 000000000..e6ede54c8
--- /dev/null
+++ b/tests/dictionaries_old/10load_multivalue/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=['non', 'oui'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=['non', 'oui'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/10load_multivalue/xml/00-base.xml b/tests/dictionaries_old/10load_multivalue/xml/00-base.xml
new file mode 100644
index 000000000..1f092d5b6
--- /dev/null
+++ b/tests/dictionaries_old/10load_multivalue/xml/00-base.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+ non
+ oui
+
+
+
+
diff --git a/tests/dictionaries/10load_multivalue/yml/00-base.yml b/tests/dictionaries_old/10load_multivalue/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10load_multivalue/yml/00-base.yml
rename to tests/dictionaries_old/10load_multivalue/yml/00-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_accent/00-base.xml b/tests/dictionaries_old/10valid_enum_accent/00-base.xml
deleted file mode 100644
index 1731282d2..000000000
--- a/tests/dictionaries_old/10valid_enum_accent/00-base.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- c
-
-
-
-
-
- a
- b
- c
- é
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_accent/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_accent/result/rougail/00-base.yml
new file mode 100644
index 000000000..0378ed8cf
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_accent/result/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: c
+ choices:
+ - a
+ - b
+ - c
+ - é
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_accent/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_accent/tiramisu/base.py
index e4369a1ff..524d584c8 100644
--- a/tests/dictionaries_old/10valid_enum_accent/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_accent/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
option_5 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c', 'é'), default="c", properties=frozenset({"expert", "mandatory"}))
option_5.impl_set_information('help', "bla bla bla")
-option_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_accent/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_accent/tiramisu/multi.py
new file mode 100644
index 000000000..bda775260
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_accent/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c', 'é'), default="c", properties=frozenset({"expert", "mandatory"}))
+option_4.impl_set_information('help', "bla bla bla")
+optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
+option_8 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c', 'é'), default="c", properties=frozenset({"expert", "mandatory"}))
+option_8.impl_set_information('help', "bla bla bla")
+optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10valid_enum_accent/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_accent/xml/00-base.xml
new file mode 100644
index 000000000..906008046
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_accent/xml/00-base.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+ non
+
+
+
+
+ c
+ a
+ b
+ c
+ é
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_accent/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_accent/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_accent/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_accent/yml/00-base.yml
diff --git a/tests/dictionaries/11multi_disabled_if_in_filelist/__init__.py b/tests/dictionaries_old/10valid_enum_append/__init__.py
similarity index 100%
rename from tests/dictionaries/11multi_disabled_if_in_filelist/__init__.py
rename to tests/dictionaries_old/10valid_enum_append/__init__.py
diff --git a/tests/dictionaries/10valid_enum_append/makedict/after.json b/tests/dictionaries_old/10valid_enum_append/makedict/after.json
similarity index 100%
rename from tests/dictionaries/10valid_enum_append/makedict/after.json
rename to tests/dictionaries_old/10valid_enum_append/makedict/after.json
diff --git a/tests/dictionaries/10valid_enum_append/makedict/base.json b/tests/dictionaries_old/10valid_enum_append/makedict/base.json
similarity index 100%
rename from tests/dictionaries/10valid_enum_append/makedict/base.json
rename to tests/dictionaries_old/10valid_enum_append/makedict/base.json
diff --git a/tests/dictionaries/10valid_enum_append/makedict/before.json b/tests/dictionaries_old/10valid_enum_append/makedict/before.json
similarity index 100%
rename from tests/dictionaries/10valid_enum_append/makedict/before.json
rename to tests/dictionaries_old/10valid_enum_append/makedict/before.json
diff --git a/tests/dictionaries_old/10valid_enum_append/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_append/result/rougail/00-base.yml
new file mode 100644
index 000000000..5e336a75f
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_append/result/rougail/00-base.yml
@@ -0,0 +1,17 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: b
+ choices:
+ - a
+ - b
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_append/result/rougail/01-base.yml b/tests/dictionaries_old/10valid_enum_append/result/rougail/01-base.yml
new file mode 100644
index 000000000..fd5f280ac
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_append/result/rougail/01-base.yml
@@ -0,0 +1,7 @@
+enumfam:
+ enumvar:
+ redefine: true
+ default: c
+ choices:
+ - c
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_append/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_append/tiramisu/base.py
new file mode 100644
index 000000000..778b0a54a
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_append/tiramisu/base.py
@@ -0,0 +1,32 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="multi", values=('c',), default="c", properties=frozenset({"expert", "mandatory"}))
+option_5.impl_set_information('help', "bla bla bla")
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/10valid_enum_append/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_append/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/10valid_enum_append/tiramisu/multi.py
rename to tests/dictionaries_old/10valid_enum_append/tiramisu/multi.py
diff --git a/tests/dictionaries/10valid_enum_append/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_append/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/10valid_enum_append/xml/00-base.xml
rename to tests/dictionaries_old/10valid_enum_append/xml/00-base.xml
diff --git a/tests/dictionaries/10valid_enum_append/xml/01-base.xml b/tests/dictionaries_old/10valid_enum_append/xml/01-base.xml
similarity index 100%
rename from tests/dictionaries/10valid_enum_append/xml/01-base.xml
rename to tests/dictionaries_old/10valid_enum_append/xml/01-base.xml
diff --git a/tests/dictionaries/10valid_enum_append/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_append/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_append/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_append/yml/00-base.yml
diff --git a/tests/dictionaries/10valid_enum_append/yml/01-base.yml b/tests/dictionaries_old/10valid_enum_append/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_append/yml/01-base.yml
rename to tests/dictionaries_old/10valid_enum_append/yml/01-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_base/00-base.xml b/tests/dictionaries_old/10valid_enum_base/00-base.xml
deleted file mode 100644
index 070b9df41..000000000
--- a/tests/dictionaries_old/10valid_enum_base/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- c
-
-
-
-
-
- a
- b
- c
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_base/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_base/result/rougail/00-base.yml
new file mode 100644
index 000000000..dfa17db97
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_base/result/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: c
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_base/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_base/tiramisu/base.py
index d7f3e6998..80885dfc6 100644
--- a/tests/dictionaries_old/10valid_enum_base/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_base/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
option_5 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
option_5.impl_set_information('help', "bla bla bla")
-option_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_base/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_base/tiramisu/multi.py
new file mode 100644
index 000000000..96e055d89
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_base/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
+option_4.impl_set_information('help', "bla bla bla")
+optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
+option_8 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
+option_8.impl_set_information('help', "bla bla bla")
+optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10valid_enum_base/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_base/xml/00-base.xml
new file mode 100644
index 000000000..771bc0d5b
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_base/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ non
+
+
+
+
+ c
+ a
+ b
+ c
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_base/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_base/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_base/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_base/yml/00-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_base_no_mandatory/00-base.xml b/tests/dictionaries_old/10valid_enum_base_no_mandatory/00-base.xml
deleted file mode 100644
index 2727a9467..000000000
--- a/tests/dictionaries_old/10valid_enum_base_no_mandatory/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- c
-
-
-
-
-
- a
- b
- c
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_base_no_mandatory/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_base_no_mandatory/result/rougail/00-base.yml
new file mode 100644
index 000000000..c4f293044
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_base_no_mandatory/result/rougail/00-base.yml
@@ -0,0 +1,17 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ mandatory: false
+ type: choice
+ default: c
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_base_no_mandatory/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_base_no_mandatory/tiramisu/base.py
index 4be4e26ea..bc26775f5 100644
--- a/tests/dictionaries_old/10valid_enum_base_no_mandatory/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_base_no_mandatory/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=('a', 'b', 'c', None), default="c", properties=frozenset({"expert"}))
-option_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_base_no_mandatory/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_base_no_mandatory/tiramisu/multi.py
new file mode 100644
index 000000000..83b4dfcad
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_base_no_mandatory/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_4 = ChoiceOption(name="enumvar", doc="enumvar", values=('a', 'b', 'c', None), default="c", properties=frozenset({"expert"}))
+optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
+option_8 = ChoiceOption(name="enumvar", doc="enumvar", values=('a', 'b', 'c', None), default="c", properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10valid_enum_base_no_mandatory/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_base_no_mandatory/xml/00-base.xml
new file mode 100644
index 000000000..d700f9d26
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_base_no_mandatory/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ non
+
+
+
+
+ c
+ a
+ b
+ c
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_base_no_mandatory/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_base_no_mandatory/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_base_no_mandatory/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_base_no_mandatory/yml/00-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_base_redefine/00-base.xml b/tests/dictionaries_old/10valid_enum_base_redefine/00-base.xml
deleted file mode 100644
index a38f6a0d4..000000000
--- a/tests/dictionaries_old/10valid_enum_base_redefine/00-base.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- c
-
-
- c
-
-
-
-
-
- a
- b
- c
- enumvar
-
-
- a
- b
- c
- enumvar2
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_base_redefine/01-base.xml b/tests/dictionaries_old/10valid_enum_base_redefine/01-base.xml
deleted file mode 100644
index c542d3c6f..000000000
--- a/tests/dictionaries_old/10valid_enum_base_redefine/01-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- c
-
-
-
-
-
- a
- c
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_base_redefine/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_base_redefine/result/rougail/00-base.yml
new file mode 100644
index 000000000..fc6d6f850
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_base_redefine/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar2:
+ type: choice
+ description: multi
+ default: c
+ choices:
+ - a
+ - b
+ - c
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: c
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_base_redefine/result/rougail/01-base.yml b/tests/dictionaries_old/10valid_enum_base_redefine/result/rougail/01-base.yml
new file mode 100644
index 000000000..92a14cf34
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_base_redefine/result/rougail/01-base.yml
@@ -0,0 +1,9 @@
+enumfam:
+ enumvar:
+ redefine: true
+ validators: null
+ default: c
+ choices:
+ - a
+ - c
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_base_redefine/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_base_redefine/tiramisu/base.py
index ea9f2f220..394b75f4e 100644
--- a/tests/dictionaries_old/10valid_enum_base_redefine/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_base_redefine/tiramisu/base.py
@@ -1,21 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
option_5 = ChoiceOption(name="enumvar2", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
option_6 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
option_6.impl_set_information('help', "bla bla bla")
-option_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5, option_6], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5, option_6], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_base_redefine/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_base_redefine/tiramisu/multi.py
new file mode 100644
index 000000000..c80da4e5b
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_base_redefine/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_4 = ChoiceOption(name="enumvar2", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
+option_5 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
+option_5.impl_set_information('help', "bla bla bla")
+optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4, option_5], properties=frozenset({"expert"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7], properties=frozenset({"expert"}))
+option_9 = ChoiceOption(name="enumvar2", doc="multi", values=('a', 'b', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
+option_10 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'c'), default="c", properties=frozenset({"expert", "mandatory"}))
+option_10.impl_set_information('help', "bla bla bla")
+optiondescription_8 = OptionDescription(name="enumfam", doc="enumfam", children=[option_9, option_10], properties=frozenset({"expert"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6, optiondescription_8], properties=frozenset({"expert"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/10valid_enum_base_redefine/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_base_redefine/xml/00-base.xml
new file mode 100644
index 000000000..de0c9759c
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_base_redefine/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ non
+
+
+
+
+ c
+ a
+ b
+ c
+
+
+ c
+ a
+ b
+ c
+
+
+
+
+
diff --git a/tests/dictionaries_old/10valid_enum_base_redefine/xml/01-base.xml b/tests/dictionaries_old/10valid_enum_base_redefine/xml/01-base.xml
new file mode 100644
index 000000000..b50a49f41
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_base_redefine/xml/01-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ c
+ a
+ c
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_base_redefine/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_base_redefine/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_base_redefine/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_base_redefine/yml/00-base.yml
diff --git a/tests/dictionaries/10valid_enum_base_redefine/yml/01-base.yml b/tests/dictionaries_old/10valid_enum_base_redefine/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_base_redefine/yml/01-base.yml
rename to tests/dictionaries_old/10valid_enum_base_redefine/yml/01-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_leader/00-base.xml b/tests/dictionaries_old/10valid_enum_leader/00-base.xml
deleted file mode 100644
index d0b5a3694..000000000
--- a/tests/dictionaries_old/10valid_enum_leader/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
- a
- b
- c
- follower1
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_leader/makedict/after.json b/tests/dictionaries_old/10valid_enum_leader/makedict/after.json
index dd62b9801..548ec3acc 100644
--- a/tests/dictionaries_old/10valid_enum_leader/makedict/after.json
+++ b/tests/dictionaries_old/10valid_enum_leader/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10valid_enum_leader/makedict/before.json b/tests/dictionaries_old/10valid_enum_leader/makedict/before.json
index dd62b9801..548ec3acc 100644
--- a/tests/dictionaries_old/10valid_enum_leader/makedict/before.json
+++ b/tests/dictionaries_old/10valid_enum_leader/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/10valid_enum_leader/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_leader/result/rougail/00-base.yml
new file mode 100644
index 000000000..defffce64
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_leader/result/rougail/00-base.yml
@@ -0,0 +1,24 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: choice
+ description: follower1
+ default: a
+ choices:
+ - a
+ - b
+ - c
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_leader/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_leader/tiramisu/base.py
index 4aad51c73..ca723336f 100644
--- a/tests/dictionaries_old/10valid_enum_leader/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_leader/tiramisu/base.py
@@ -1,21 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True)
-option_6 = ChoiceOption(name="follower1", doc="follower1", values=('a', 'b', 'c'), multi=True, default_multi="a", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_6 = ChoiceOption(name="follower1", doc="follower1", values=('a', 'b', 'c'), multi=True, default="a", properties=frozenset({"mandatory", "normal"}))
option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-option_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_leader/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_leader/tiramisu/multi.py
new file mode 100644
index 000000000..ef5b09d74
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_leader/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_5 = ChoiceOption(name="follower1", doc="follower1", values=('a', 'b', 'c'), multi=True, default_multi="a", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_11 = ChoiceOption(name="follower1", doc="follower1", values=('a', 'b', 'c'), multi=True, default_multi="a", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/10valid_enum_leader/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_leader/xml/00-base.xml
new file mode 100644
index 000000000..da1411852
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_leader/xml/00-base.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ non
+
+
+
+
+ a
+ b
+ c
+ a
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_leader/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_leader/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_leader/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_leader/yml/00-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_mandatory/00-base.xml b/tests/dictionaries_old/10valid_enum_mandatory/00-base.xml
deleted file mode 100644
index 89daeab9f..000000000
--- a/tests/dictionaries_old/10valid_enum_mandatory/00-base.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
- a
- b
- c
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_mandatory/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_mandatory/result/rougail/00-base.yml
new file mode 100644
index 000000000..dcbdb41f5
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_mandatory/result/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ mandatory: true
+ default: a
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_mandatory/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_mandatory/tiramisu/base.py
index 42d0f0226..d229229c7 100644
--- a/tests/dictionaries_old/10valid_enum_mandatory/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_mandatory/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
option_5 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="a", properties=frozenset({"expert", "mandatory"}))
-option_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_mandatory/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_mandatory/tiramisu/multi.py
new file mode 100644
index 000000000..f34b92385
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_mandatory/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="a", properties=frozenset({"expert", "mandatory"}))
+optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
+option_8 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', 'c'), default="a", properties=frozenset({"expert", "mandatory"}))
+optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10valid_enum_mandatory/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_mandatory/xml/00-base.xml
new file mode 100644
index 000000000..aa320bfb6
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_mandatory/xml/00-base.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+ non
+
+
+
+
+ a
+ b
+ c
+ a
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_mandatory/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_mandatory/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_mandatory/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_mandatory/yml/00-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_multi/00-base.xml b/tests/dictionaries_old/10valid_enum_multi/00-base.xml
deleted file mode 100644
index d3bdd736b..000000000
--- a/tests/dictionaries_old/10valid_enum_multi/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
- a
- b
- c
- multi
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_multi/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..ffe6bce4c
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_multi/result/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ multi:
+ type: choice
+ description: multi
+ multi: true
+ default:
+ - a
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_multi/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_multi/tiramisu/base.py
index d9d152aa5..89bd0ca8d 100644
--- a/tests/dictionaries_old/10valid_enum_multi/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_multi/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = ChoiceOption(name="multi", doc="multi", values=('a', 'b', 'c'), multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_multi/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_multi/tiramisu/multi.py
new file mode 100644
index 000000000..fab9931f2
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_multi/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = ChoiceOption(name="multi", doc="multi", values=('a', 'b', 'c'), multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = ChoiceOption(name="multi", doc="multi", values=('a', 'b', 'c'), multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/10valid_enum_multi/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_multi/xml/00-base.xml
new file mode 100644
index 000000000..85dae3589
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_multi/xml/00-base.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ non
+
+
+ a
+ b
+ c
+ a
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_multi/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_multi/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_multi/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_multi/yml/00-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_none/00-base.xml b/tests/dictionaries_old/10valid_enum_none/00-base.xml
deleted file mode 100644
index e8d463271..000000000
--- a/tests/dictionaries_old/10valid_enum_none/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- b
-
-
-
-
-
- a
- b
-
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_none/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_none/result/rougail/00-base.yml
new file mode 100644
index 000000000..ba649d21d
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_none/result/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ mandatory: false
+ default: b
+ choices:
+ - a
+ - b
+ - null
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_none/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_none/tiramisu/base.py
index f6f1b9788..b5ab18356 100644
--- a/tests/dictionaries_old/10valid_enum_none/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_none/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
-option_5 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', '', None), default="b", properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+option_5 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', None), default="b", properties=frozenset({"expert"}))
option_5.impl_set_information('help', "bla bla bla")
-option_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_none/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_none/tiramisu/multi.py
new file mode 100644
index 000000000..bcfb7836f
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_none/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_4 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', None), default="b", properties=frozenset({"expert"}))
+option_4.impl_set_information('help', "bla bla bla")
+optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
+option_8 = ChoiceOption(name="enumvar", doc="multi", values=('a', 'b', None), default="b", properties=frozenset({"expert"}))
+option_8.impl_set_information('help', "bla bla bla")
+optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10valid_enum_none/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_none/xml/00-base.xml
new file mode 100644
index 000000000..26c37a2ee
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_none/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ non
+
+
+
+
+ b
+ a
+ b
+
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_none/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_none/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_none/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_none/yml/00-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_number/00-base.xml b/tests/dictionaries_old/10valid_enum_number/00-base.xml
deleted file mode 100644
index fb8b66d9b..000000000
--- a/tests/dictionaries_old/10valid_enum_number/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
- 1
- 2
- 3
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_number/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_number/result/rougail/00-base.yml
new file mode 100644
index 000000000..d4d804516
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_number/result/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: enumvar
+ help: bla bla bla
+ default: 1
+ choices:
+ - 1
+ - 2
+ - 3
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_number/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_number/tiramisu/base.py
index d367bb274..e287a490f 100644
--- a/tests/dictionaries_old/10valid_enum_number/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_number/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
option_5.impl_set_information('help', "bla bla bla")
-option_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_number/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_number/tiramisu/multi.py
new file mode 100644
index 000000000..4a52c4abb
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_number/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_4 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
+option_4.impl_set_information('help', "bla bla bla")
+optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
+option_8 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"expert", "mandatory"}))
+option_8.impl_set_information('help', "bla bla bla")
+optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10valid_enum_number/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_number/xml/00-base.xml
new file mode 100644
index 000000000..7c6b14638
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_number/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ non
+
+
+
+
+ 1
+ 2
+ 3
+ 1
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_number/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_number/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_number/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_number/yml/00-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_numberdefault/00-base.xml b/tests/dictionaries_old/10valid_enum_numberdefault/00-base.xml
deleted file mode 100644
index a02d91bf5..000000000
--- a/tests/dictionaries_old/10valid_enum_numberdefault/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- 3
-
-
-
-
-
- 1
- 2
- 3
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_numberdefault/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_numberdefault/result/rougail/00-base.yml
new file mode 100644
index 000000000..4ebdcf8ac
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_numberdefault/result/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: enumvar
+ help: bla bla bla
+ default: 3
+ choices:
+ - 1
+ - 2
+ - 3
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_numberdefault/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_numberdefault/tiramisu/base.py
index aa15258f9..6c554fd0f 100644
--- a/tests/dictionaries_old/10valid_enum_numberdefault/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_numberdefault/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"expert", "mandatory"}))
option_5.impl_set_information('help', "bla bla bla")
-option_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_numberdefault/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_numberdefault/tiramisu/multi.py
new file mode 100644
index 000000000..7fbfa4a36
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_numberdefault/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_4 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"expert", "mandatory"}))
+option_4.impl_set_information('help', "bla bla bla")
+optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
+option_8 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"expert", "mandatory"}))
+option_8.impl_set_information('help', "bla bla bla")
+optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10valid_enum_numberdefault/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_numberdefault/xml/00-base.xml
new file mode 100644
index 000000000..76ac71389
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_numberdefault/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ non
+
+
+
+
+ 3
+ 1
+ 2
+ 3
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_numberdefault/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_numberdefault/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_numberdefault/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_numberdefault/yml/00-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_param_empty/00-base.xml b/tests/dictionaries_old/10valid_enum_param_empty/00-base.xml
deleted file mode 100644
index 23831823a..000000000
--- a/tests/dictionaries_old/10valid_enum_param_empty/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_param_empty/makedict/after.json b/tests/dictionaries_old/10valid_enum_param_empty/makedict/after.json
index 4c3ef489d..f7fecf93b 100644
--- a/tests/dictionaries_old/10valid_enum_param_empty/makedict/after.json
+++ b/tests/dictionaries_old/10valid_enum_param_empty/makedict/after.json
@@ -1,8 +1,4 @@
{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
"rougail.enumfam.enumvar": {
"owner": "default",
"value": null
diff --git a/tests/dictionaries_old/10valid_enum_param_empty/makedict/base.json b/tests/dictionaries_old/10valid_enum_param_empty/makedict/base.json
index 53dfede82..09f494be2 100644
--- a/tests/dictionaries_old/10valid_enum_param_empty/makedict/base.json
+++ b/tests/dictionaries_old/10valid_enum_param_empty/makedict/base.json
@@ -1,4 +1,3 @@
{
- "rougail.general.mode_conteneur_actif": "non",
"rougail.enumfam.enumvar": null
}
diff --git a/tests/dictionaries_old/10valid_enum_param_empty/makedict/before.json b/tests/dictionaries_old/10valid_enum_param_empty/makedict/before.json
index 4c3ef489d..f7fecf93b 100644
--- a/tests/dictionaries_old/10valid_enum_param_empty/makedict/before.json
+++ b/tests/dictionaries_old/10valid_enum_param_empty/makedict/before.json
@@ -1,8 +1,4 @@
{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
"rougail.enumfam.enumvar": {
"owner": "default",
"value": null
diff --git a/tests/dictionaries_old/10valid_enum_param_empty/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_param_empty/result/rougail/00-base.yml
new file mode 100644
index 000000000..12e0f0a3d
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_param_empty/result/rougail/00-base.yml
@@ -0,0 +1,10 @@
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: null
+ choices:
+ - null
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_param_empty/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_param_empty/tiramisu/base.py
index be3742fc8..6c9e19a89 100644
--- a/tests/dictionaries_old/10valid_enum_param_empty/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_param_empty/tiramisu/base.py
@@ -1,20 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
-option_5 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
-option_5.impl_set_information('help', "bla bla bla")
-option_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
+option_3.impl_set_information('help', "bla bla bla")
+optiondescription_2 = OptionDescription(name="enumfam", doc="enumfam", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_param_empty/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_param_empty/tiramisu/multi.py
new file mode 100644
index 000000000..099d66d78
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_param_empty/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
+option_2.impl_set_information('help', "bla bla bla")
+optiondescription_1 = OptionDescription(name="enumfam", doc="enumfam", children=[option_2], properties=frozenset({"expert"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
+option_4.impl_set_information('help', "bla bla bla")
+optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/10valid_enum_param_empty/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_param_empty/xml/00-base.xml
new file mode 100644
index 000000000..7a8fa09d4
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_param_empty/xml/00-base.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_param_empty/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_param_empty/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_param_empty/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_param_empty/yml/00-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_param_empty2/00-base.xml b/tests/dictionaries_old/10valid_enum_param_empty2/00-base.xml
deleted file mode 100644
index 23831823a..000000000
--- a/tests/dictionaries_old/10valid_enum_param_empty2/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_param_empty2/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_param_empty2/result/rougail/00-base.yml
new file mode 100644
index 000000000..ca08e3ffe
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_param_empty2/result/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: null
+ choices:
+ - null
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_param_empty2/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_param_empty2/tiramisu/base.py
index be3742fc8..e93ed52b5 100644
--- a/tests/dictionaries_old/10valid_enum_param_empty2/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_param_empty2/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
option_5 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
option_5.impl_set_information('help', "bla bla bla")
-option_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_param_empty2/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_param_empty2/tiramisu/multi.py
new file mode 100644
index 000000000..dc1d341c9
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_param_empty2/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_4 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
+option_4.impl_set_information('help', "bla bla bla")
+optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
+option_8 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
+option_8.impl_set_information('help', "bla bla bla")
+optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10valid_enum_param_empty2/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_param_empty2/xml/00-base.xml
new file mode 100644
index 000000000..1d3299e5b
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_param_empty2/xml/00-base.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_param_empty2/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_param_empty2/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_param_empty2/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_param_empty2/yml/00-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_quote/00-base.xml b/tests/dictionaries_old/10valid_enum_quote/00-base.xml
deleted file mode 100644
index d8e1f824d..000000000
--- a/tests/dictionaries_old/10valid_enum_quote/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
- quote'
- quote"
- quote"'
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_quote/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_quote/result/rougail/00-base.yml
new file mode 100644
index 000000000..ea4790639
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_quote/result/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode: expert
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+enumfam:
+ mode: expert
+ enumvar:
+ type: choice
+ description: multi
+ help: bla bla bla
+ default: quote'
+ choices:
+ - quote'
+ - quote"
+ - quote"'
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_quote/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_quote/tiramisu/base.py
index 7e63f90ac..7b95c7540 100644
--- a/tests/dictionaries_old/10valid_enum_quote/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_quote/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"}))
option_5 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", 'quote"', 'quote"\''), default="quote'", properties=frozenset({"expert", "mandatory"}))
option_5.impl_set_information('help', "bla bla bla")
-option_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_quote/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_quote/tiramisu/multi.py
new file mode 100644
index 000000000..e3c12baf0
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_quote/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"}))
+option_4 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", 'quote"', 'quote"\''), default="quote'", properties=frozenset({"expert", "mandatory"}))
+option_4.impl_set_information('help', "bla bla bla")
+optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
+option_8 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", 'quote"', 'quote"\''), default="quote'", properties=frozenset({"expert", "mandatory"}))
+option_8.impl_set_information('help', "bla bla bla")
+optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"expert"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/10valid_enum_quote/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_quote/xml/00-base.xml
new file mode 100644
index 000000000..1054c9a12
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_quote/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ non
+
+
+
+
+ quote'
+ quote"
+ quote"'
+ quote'
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_quote/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_quote/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_quote/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_quote/yml/00-base.yml
diff --git a/tests/dictionaries_old/10valid_enum_value/00-base.xml b/tests/dictionaries_old/10valid_enum_value/00-base.xml
deleted file mode 100644
index 4ace18912..000000000
--- a/tests/dictionaries_old/10valid_enum_value/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- b
-
-
-
-
-
- a
- b
- c
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/10valid_enum_value/result/rougail/00-base.yml b/tests/dictionaries_old/10valid_enum_value/result/rougail/00-base.yml
new file mode 100644
index 000000000..838e7f785
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_value/result/rougail/00-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ type: choice
+ description: No change
+ default: b
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries_old/10valid_enum_value/tiramisu/base.py b/tests/dictionaries_old/10valid_enum_value/tiramisu/base.py
index 5791fc0dd..24a08fe76 100644
--- a/tests/dictionaries_old/10valid_enum_value/tiramisu/base.py
+++ b/tests/dictionaries_old/10valid_enum_value/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=('a', 'b', 'c'), default="b", 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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/10valid_enum_value/tiramisu/multi.py b/tests/dictionaries_old/10valid_enum_value/tiramisu/multi.py
new file mode 100644
index 000000000..1ad4a9d05
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_value/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=('a', 'b', 'c'), default="b", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=('a', 'b', 'c'), default="b", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/10valid_enum_value/xml/00-base.xml b/tests/dictionaries_old/10valid_enum_value/xml/00-base.xml
new file mode 100644
index 000000000..4454a23d3
--- /dev/null
+++ b/tests/dictionaries_old/10valid_enum_value/xml/00-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ b
+ a
+ b
+ c
+
+
+
+
+
diff --git a/tests/dictionaries/10valid_enum_value/yml/00-base.yml b/tests/dictionaries_old/10valid_enum_value/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/10valid_enum_value/yml/00-base.yml
rename to tests/dictionaries_old/10valid_enum_value/yml/00-base.yml
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist/00-base.xml b/tests/dictionaries_old/11disabled_if_in_filelist/00-base.xml
deleted file mode 100644
index dc6be1919..000000000
--- a/tests/dictionaries_old/11disabled_if_in_filelist/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- /etc/file
-
-
-
-
-
- non
-
-
- non
-
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist/makedict/after.json b/tests/dictionaries_old/11disabled_if_in_filelist/makedict/after.json
index 14937b25a..f96452594 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist/makedict/after.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist/makedict/after.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": true
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist/makedict/base.json b/tests/dictionaries_old/11disabled_if_in_filelist/makedict/base.json
index 05d18c188..8924b3316 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist/makedict/base.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist/makedict/base.json
@@ -2,8 +2,9 @@
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
"rougail.general.mode_conteneur_actif2": true,
- "services.test.files.file.name": "/etc/file",
- "services.test.files.file.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/etc/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist/makedict/before.json b/tests/dictionaries_old/11disabled_if_in_filelist/makedict/before.json
index 14937b25a..f96452594 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist/makedict/before.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist/makedict/before.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": true
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist/result/etc/file b/tests/dictionaries_old/11disabled_if_in_filelist/result/etc/file
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries_old/11disabled_if_in_filelist/result/etc/file
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist/result/rougail/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist/result/rougail/00-base.yml
new file mode 100644
index 000000000..ccb368d8b
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist/result/rougail/00-base.yml
@@ -0,0 +1,21 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: boolean
+ description: No change
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist/result/services/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist/result/services/00-base.yml
new file mode 100644
index 000000000..91273e771
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /etc/file:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/11disabled_if_in_filelist/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 574c7b823..000000000
--- a/tests/dictionaries_old/11disabled_if_in_filelist/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/file 0644 root root - /usr/local/lib/etc/file
-z /etc/file - - - - -
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist/tiramisu/base.py b/tests/dictionaries_old/11disabled_if_in_filelist/tiramisu/base.py
index d9eca787d..4e314c9da 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist/tiramisu/base.py
+++ b/tests/dictionaries_old/11disabled_if_in_filelist/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_5 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11])
-option_9.impl_set_information('source', "file")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/etc/file")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist/tiramisu/multi.py b/tests/dictionaries_old/11disabled_if_in_filelist/tiramisu/multi.py
new file mode 100644
index 000000000..1b93e13c5
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_4 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
+optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_8 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_21 = StrOption(name="source", doc="source", default="file")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
+optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist/xml/00-base.xml b/tests/dictionaries_old/11disabled_if_in_filelist/xml/00-base.xml
new file mode 100644
index 000000000..5f15500ec
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+ /etc/file
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+ afilllist
+
+
+
diff --git a/tests/dictionaries/11disabled_if_in_filelist/yml/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11disabled_if_in_filelist/yml/00-base.yml
rename to tests/dictionaries_old/11disabled_if_in_filelist/yml/00-base.yml
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/00-base.xml b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/00-base.xml
deleted file mode 100644
index a74e53316..000000000
--- a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- /tmp/file1
-
-
-
-
-
-
-
-
-
- True
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/makedict/after.json b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/makedict/after.json
index 2d2b3390a..69befa8d2 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/makedict/after.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/makedict/after.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": true
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/makedict/base.json b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/makedict/base.json
index e0b590dcc..328ee3e37 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/makedict/base.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/makedict/base.json
@@ -1,7 +1,8 @@
{
"rougail.general.condition": true,
- "services.test.files.file1.name": "/tmp/file1",
- "services.test.files.file1.activate": false,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file1.name": "/tmp/file1",
+ "services.test_service.files.file1.source": "file1",
+ "services.test_service.files.file1.activate": false,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/makedict/before.json b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/makedict/before.json
index 2d2b3390a..69befa8d2 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/makedict/before.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/makedict/before.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": true
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/result/rougail/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/result/rougail/00-base.yml
new file mode 100644
index 000000000..9b10c48f8
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/result/rougail/00-base.yml
@@ -0,0 +1,4 @@
+general:
+ condition:
+ type: boolean
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/result/services/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/result/services/00-base.yml
new file mode 100644
index 000000000..8d43ab1c1
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file1:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == true %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/tiramisu/base.py b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/tiramisu/base.py
index 90367ba3e..655bf3a97 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/tiramisu/base.py
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/tiramisu/base.py
@@ -1,26 +1,39 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = BoolOption(name="condition", doc="condition", default=True, 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])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_9 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue(True)})))
-option_7 = OptionDescription(name="file1", doc="file1", children=[option_8, option_9])
-option_7.impl_set_information('source', "file1")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7])
+option_9 = FilenameOption(name="source", doc="source", default="/tmp/file1")
option_10 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_10, option_11])
-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])
+optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_8, option_9, option_10])
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
+option_11 = BoolOption(name="activate", doc="activate", default=True)
+option_12 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_11, option_12])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/tiramisu/multi.py b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/tiramisu/multi.py
new file mode 100644
index 000000000..d6644fcf8
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/tiramisu/multi.py
@@ -0,0 +1,54 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_10 = StrOption(name="source", doc="source", default="file1")
+option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(True)})))
+optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_8])
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
+option_5 = BoolOption(name="activate", doc="activate", default=True)
+option_11 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_22 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
+optiondescription_22.impl_set_information('type', "service")
+optiondescription_21 = OptionDescription(name="services", doc="services", children=[optiondescription_22], properties=frozenset({"hidden"}))
+optiondescription_19 = OptionDescription(name="1", doc="1", children=[optiondescription_20, optiondescription_21])
+option_4 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_16 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_17 = 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_4, notraisepropertyerror=True), 'expected_0': ParamValue(True)})))
+optiondescription_14 = OptionDescription(name="file1", doc="file1", children=[option_16, option_17, option_15])
+optiondescription_13 = OptionDescription(name="files", doc="files", children=[optiondescription_14])
+option_12 = BoolOption(name="activate", doc="activate", default=True)
+option_18 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_13, option_12, option_18])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="2", doc="2", children=[optiondescription_24, optiondescription_25])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_19, optiondescription_23])
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean/xml/00-base.xml b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/xml/00-base.xml
new file mode 100644
index 000000000..cb9c4bc18
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ /tmp/file1
+
+
+
+
+
+
+
+
+
+ True
+ afilllist
+
+
+
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean/yml/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_boolean/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11disabled_if_in_filelist_boolean/yml/00-base.yml
rename to tests/dictionaries_old/11disabled_if_in_filelist_boolean/yml/00-base.yml
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/00-base.xml b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/00-base.xml
deleted file mode 100644
index a3f201174..000000000
--- a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
- /tmp/file1
-
-
-
-
-
- False
-
-
-
-
-
- True
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/makedict/after.json b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/makedict/after.json
index a7cf2fa1f..8df0f30a1 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/makedict/after.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/makedict/after.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": false
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/makedict/base.json b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/makedict/base.json
index 1920d6a35..9635e68a5 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/makedict/base.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/makedict/base.json
@@ -1,7 +1,8 @@
{
"rougail.general.condition": false,
- "services.test.files.file1.name": "/tmp/file1",
- "services.test.files.file1.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file1.name": "/tmp/file1",
+ "services.test_service.files.file1.source": "file1",
+ "services.test_service.files.file1.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/makedict/before.json b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/makedict/before.json
index a7cf2fa1f..8df0f30a1 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/makedict/before.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/makedict/before.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": false
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/result/rougail/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/result/rougail/00-base.yml
new file mode 100644
index 000000000..c0abf7583
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/result/rougail/00-base.yml
@@ -0,0 +1,5 @@
+general:
+ condition:
+ type: boolean
+ default: false
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/result/services/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/result/services/00-base.yml
new file mode 100644
index 000000000..8d43ab1c1
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file1:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == true %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/tiramisu/base.py b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/tiramisu/base.py
index 9284fbfb1..48e46b92a 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/tiramisu/base.py
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/tiramisu/base.py
@@ -1,26 +1,39 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = BoolOption(name="condition", doc="condition", default=False, 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])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_9 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue(True)})))
-option_7 = OptionDescription(name="file1", doc="file1", children=[option_8, option_9])
-option_7.impl_set_information('source', "file1")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7])
+option_9 = FilenameOption(name="source", doc="source", default="/tmp/file1")
option_10 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_10, option_11])
-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])
+optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_8, option_9, option_10])
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
+option_11 = BoolOption(name="activate", doc="activate", default=True)
+option_12 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_11, option_12])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/tiramisu/multi.py b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/tiramisu/multi.py
new file mode 100644
index 000000000..de38d9f2f
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/tiramisu/multi.py
@@ -0,0 +1,54 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = BoolOption(name="condition", doc="condition", default=False, properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_10 = StrOption(name="source", doc="source", default="file1")
+option_8 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue(True)})))
+optiondescription_7 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_8])
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
+option_5 = BoolOption(name="activate", doc="activate", default=True)
+option_11 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_22 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
+optiondescription_22.impl_set_information('type', "service")
+optiondescription_21 = OptionDescription(name="services", doc="services", children=[optiondescription_22], properties=frozenset({"hidden"}))
+optiondescription_19 = OptionDescription(name="1", doc="1", children=[optiondescription_20, optiondescription_21])
+option_4 = BoolOption(name="condition", doc="condition", default=False, properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+option_16 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_17 = 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_4, notraisepropertyerror=True), 'expected_0': ParamValue(True)})))
+optiondescription_14 = OptionDescription(name="file1", doc="file1", children=[option_16, option_17, option_15])
+optiondescription_13 = OptionDescription(name="files", doc="files", children=[optiondescription_14])
+option_12 = BoolOption(name="activate", doc="activate", default=True)
+option_18 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_13, option_12, option_18])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="2", doc="2", children=[optiondescription_24, optiondescription_25])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_19, optiondescription_23])
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/xml/00-base.xml b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/xml/00-base.xml
new file mode 100644
index 000000000..8b58617a4
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/xml/00-base.xml
@@ -0,0 +1,21 @@
+
+
+
+
+ /tmp/file1
+
+
+
+
+
+ False
+
+
+
+
+
+ True
+ afilllist
+
+
+
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean2/yml/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_boolean2/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11disabled_if_in_filelist_boolean2/yml/00-base.yml
rename to tests/dictionaries_old/11disabled_if_in_filelist_boolean2/yml/00-base.yml
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/00-base.xml b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/00-base.xml
deleted file mode 100644
index c9283603e..000000000
--- a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
- /etc/file
-
-
-
-
-
- oui
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/makedict/after.json b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/makedict/after.json
index 9c46a0229..221ca49f3 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/makedict/after.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/makedict/after.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": "oui"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/makedict/base.json b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/makedict/base.json
index a7466708d..e2b8adeae 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/makedict/base.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/makedict/base.json
@@ -1,7 +1,8 @@
{
"rougail.general.condition": "oui",
- "services.test.files.file.name": "/etc/file",
- "services.test.files.file.activate": false,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/etc/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": false,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/makedict/before.json b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/makedict/before.json
index 9c46a0229..221ca49f3 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/makedict/before.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/makedict/before.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": "oui"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/result/rougail/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/result/rougail/00-base.yml
new file mode 100644
index 000000000..db70b3ed2
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: oui
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/result/services/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/result/services/00-base.yml
new file mode 100644
index 000000000..91273e771
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /etc/file:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/tiramisu/base.py b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/tiramisu/base.py
index 698d9af66..d676bf37a 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/tiramisu/base.py
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11])
-option_9.impl_set_information('source', "file")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/etc/file")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/tiramisu/multi.py b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/tiramisu/multi.py
new file mode 100644
index 000000000..1d686ede8
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
+optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_21 = StrOption(name="source", doc="source", default="file")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
+optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_disabled/xml/00-base.xml b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/xml/00-base.xml
new file mode 100644
index 000000000..93676cb66
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/xml/00-base.xml
@@ -0,0 +1,29 @@
+
+
+
+
+ /etc/file
+
+
+
+
+
+ oui
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+ afilllist
+
+
+
diff --git a/tests/dictionaries/11disabled_if_in_filelist_disabled/yml/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_disabled/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11disabled_if_in_filelist_disabled/yml/00-base.yml
rename to tests/dictionaries_old/11disabled_if_in_filelist_disabled/yml/00-base.yml
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_multi/00-base.xml b/tests/dictionaries_old/11disabled_if_in_filelist_multi/00-base.xml
deleted file mode 100644
index 43a9b82bd..000000000
--- a/tests/dictionaries_old/11disabled_if_in_filelist_multi/00-base.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
- /tmp/file1
- /tmp/file2
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_multi/makedict/after.json b/tests/dictionaries_old/11disabled_if_in_filelist_multi/makedict/after.json
index f09965a89..bc8625abf 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_multi/makedict/after.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_multi/makedict/after.json
@@ -11,27 +11,35 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": true
},
- "services.test.files.file2.name": {
+ "services.test_service.files.file2.name": {
"owner": "default",
"value": "/tmp/file2"
},
- "services.test.files.file2.activate": {
+ "services.test_service.files.file2.source": {
+ "owner": "default",
+ "value": "file2"
+ },
+ "services.test_service.files.file2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_multi/makedict/base.json b/tests/dictionaries_old/11disabled_if_in_filelist_multi/makedict/base.json
index 0e923582c..97f44b587 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_multi/makedict/base.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_multi/makedict/base.json
@@ -2,10 +2,12 @@
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
"rougail.general.mode_conteneur_actif2": "non",
- "services.test.files.file1.name": "/tmp/file1",
- "services.test.files.file1.activate": true,
- "services.test.files.file2.name": "/tmp/file2",
- "services.test.files.file2.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file1.name": "/tmp/file1",
+ "services.test_service.files.file1.source": "file1",
+ "services.test_service.files.file1.activate": true,
+ "services.test_service.files.file2.name": "/tmp/file2",
+ "services.test_service.files.file2.source": "file2",
+ "services.test_service.files.file2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_multi/makedict/before.json b/tests/dictionaries_old/11disabled_if_in_filelist_multi/makedict/before.json
index f09965a89..bc8625abf 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_multi/makedict/before.json
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_multi/makedict/before.json
@@ -11,27 +11,35 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": true
},
- "services.test.files.file2.name": {
+ "services.test_service.files.file2.name": {
"owner": "default",
"value": "/tmp/file2"
},
- "services.test.files.file2.activate": {
+ "services.test_service.files.file2.source": {
+ "owner": "default",
+ "value": "file2"
+ },
+ "services.test_service.files.file2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_multi/result/rougail/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..57453550e
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_multi/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_multi/result/services/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_multi/result/services/00-base.yml
new file mode 100644
index 000000000..ebf2d5a93
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_multi/result/services/00-base.yml
@@ -0,0 +1,13 @@
+test.service:
+ files:
+ /tmp/file1:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ /tmp/file2:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_multi/tiramisu/base.py b/tests/dictionaries_old/11disabled_if_in_filelist_multi/tiramisu/base.py
index 60425117d..e2b2fa02f 100644
--- a/tests/dictionaries_old/11disabled_if_in_filelist_multi/tiramisu/base.py
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_multi/tiramisu/base.py
@@ -1,32 +1,45 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11])
-option_9.impl_set_information('source', "file1")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file2")
-option_14 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
-option_12 = OptionDescription(name="file2", doc="file2", children=[option_13, option_14])
-option_12.impl_set_information('source', "file2")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9, option_12])
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_16 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_15, option_16])
-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])
+option_11 = FilenameOption(name="source", doc="source", default="/tmp/file1")
+option_12 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12])
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file2")
+option_15 = FilenameOption(name="source", doc="source", default="/tmp/file2")
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_13 = OptionDescription(name="file2", doc="file2", children=[option_14, option_15, option_16])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9, optiondescription_13])
+option_17 = BoolOption(name="activate", doc="activate", default=True)
+option_18 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_17, option_18])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_multi/tiramisu/multi.py b/tests/dictionaries_old/11disabled_if_in_filelist_multi/tiramisu/multi.py
new file mode 100644
index 000000000..91dbf827f
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_multi/tiramisu/multi.py
@@ -0,0 +1,66 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_32 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_14 = StrOption(name="source", doc="source", default="file1")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
+optiondescription_11 = OptionDescription(name="file1", doc="file1", children=[option_13, option_14, option_12])
+option_17 = FilenameOption(name="name", doc="name", default="/tmp/file2")
+option_18 = StrOption(name="source", doc="source", default="file2")
+option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
+optiondescription_15 = OptionDescription(name="file2", doc="file2", children=[option_17, option_18, option_16])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11, optiondescription_15])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_19 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_34 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_19])
+optiondescription_34.impl_set_information('type', "service")
+optiondescription_33 = OptionDescription(name="services", doc="services", children=[optiondescription_34], properties=frozenset({"hidden"}))
+optiondescription_31 = OptionDescription(name="1", doc="1", children=[optiondescription_32, optiondescription_33])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_36 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_24 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_25 = StrOption(name="source", doc="source", default="file1")
+option_23 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
+optiondescription_22 = OptionDescription(name="file1", doc="file1", children=[option_24, option_25, option_23])
+option_28 = FilenameOption(name="name", doc="name", default="/tmp/file2")
+option_29 = StrOption(name="source", doc="source", default="file2")
+option_27 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
+optiondescription_26 = OptionDescription(name="file2", doc="file2", children=[option_28, option_29, option_27])
+optiondescription_21 = OptionDescription(name="files", doc="files", children=[optiondescription_22, optiondescription_26])
+option_20 = BoolOption(name="activate", doc="activate", default=True)
+option_30 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_38 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_21, option_20, option_30])
+optiondescription_38.impl_set_information('type', "service")
+optiondescription_37 = OptionDescription(name="services", doc="services", children=[optiondescription_38], properties=frozenset({"hidden"}))
+optiondescription_35 = OptionDescription(name="2", doc="2", children=[optiondescription_36, optiondescription_37])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_31, optiondescription_35])
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_multi/xml/00-base.xml b/tests/dictionaries_old/11disabled_if_in_filelist_multi/xml/00-base.xml
new file mode 100644
index 000000000..9e1d3cde6
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_multi/xml/00-base.xml
@@ -0,0 +1,30 @@
+
+
+
+
+ /tmp/file1
+ /tmp/file2
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+ afilllist
+
+
+
diff --git a/tests/dictionaries/11disabled_if_in_filelist_multi/yml/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_multi/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11disabled_if_in_filelist_multi/yml/00-base.yml
rename to tests/dictionaries_old/11disabled_if_in_filelist_multi/yml/00-base.yml
diff --git a/tests/dictionaries/20notemplating/__init__.py b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/__init__.py
similarity index 100%
rename from tests/dictionaries/20notemplating/__init__.py
rename to tests/dictionaries_old/11disabled_if_in_filelist_same_name/__init__.py
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_same_name/makedict/after.json b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/makedict/after.json
new file mode 100644
index 000000000..f96452594
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/makedict/after.json
@@ -0,0 +1,34 @@
+{
+ "rougail.general.condition": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.mode_conteneur_actif2": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.files.file.name": {
+ "owner": "default",
+ "value": "/etc/file"
+ },
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.manage": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_same_name/makedict/base.json b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/makedict/base.json
new file mode 100644
index 000000000..8924b3316
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/makedict/base.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.condition": "non",
+ "rougail.general.mode_conteneur_actif": "non",
+ "rougail.general.mode_conteneur_actif2": true,
+ "services.test_service.files.file.name": "/etc/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
+}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_same_name/makedict/before.json b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/makedict/before.json
new file mode 100644
index 000000000..f96452594
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/makedict/before.json
@@ -0,0 +1,34 @@
+{
+ "rougail.general.condition": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.mode_conteneur_actif2": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.files.file.name": {
+ "owner": "default",
+ "value": "/etc/file"
+ },
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.manage": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_same_name/result/rougail/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/result/rougail/00-base.yml
new file mode 100644
index 000000000..ccb368d8b
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/result/rougail/00-base.yml
@@ -0,0 +1,21 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: boolean
+ description: No change
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_same_name/result/services/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/result/services/00-base.yml
new file mode 100644
index 000000000..91273e771
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /etc/file:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_same_name/tiramisu/base.py b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/tiramisu/base.py
new file mode 100644
index 000000000..4e314c9da
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/tiramisu/base.py
@@ -0,0 +1,41 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_10 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_11 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_12 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_same_name/tiramisu/multi.py b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/tiramisu/multi.py
new file mode 100644
index 000000000..1b93e13c5
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_4 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
+optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_8 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_21 = StrOption(name="source", doc="source", default="file")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("oui")})))
+optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries/20notemplating/result/etc/file b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/tmpl/file
similarity index 100%
rename from tests/dictionaries/20notemplating/result/etc/file
rename to tests/dictionaries_old/11disabled_if_in_filelist_same_name/tmpl/file
diff --git a/tests/dictionaries_old/11disabled_if_in_filelist_same_name/xml/00-base.xml b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/xml/00-base.xml
new file mode 100644
index 000000000..11c6f4882
--- /dev/null
+++ b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+ /etc/file
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+ mode_conteneur_actif2
+ condition
+
+
+
diff --git a/tests/dictionaries/11disabled_if_in_filelist_same_name/yml/00-base.yml b/tests/dictionaries_old/11disabled_if_in_filelist_same_name/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11disabled_if_in_filelist_same_name/yml/00-base.yml
rename to tests/dictionaries_old/11disabled_if_in_filelist_same_name/yml/00-base.yml
diff --git a/tests/dictionaries_old/11disabledifin_filelist_notexist/00-base.xml b/tests/dictionaries_old/11disabledifin_filelist_notexist/00-base.xml
deleted file mode 100644
index 373e6cfca..000000000
--- a/tests/dictionaries_old/11disabledifin_filelist_notexist/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- /tmp/file
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- unpossible
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/11disabledifin_filelist_notexist/makedict/after.json b/tests/dictionaries_old/11disabledifin_filelist_notexist/makedict/after.json
index 7017b8a5b..ae1ef20d9 100644
--- a/tests/dictionaries_old/11disabledifin_filelist_notexist/makedict/after.json
+++ b/tests/dictionaries_old/11disabledifin_filelist_notexist/makedict/after.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/tmp/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabledifin_filelist_notexist/makedict/base.json b/tests/dictionaries_old/11disabledifin_filelist_notexist/makedict/base.json
index 23361c536..1a6e1a8bd 100644
--- a/tests/dictionaries_old/11disabledifin_filelist_notexist/makedict/base.json
+++ b/tests/dictionaries_old/11disabledifin_filelist_notexist/makedict/base.json
@@ -2,8 +2,9 @@
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
"rougail.general.mode_conteneur_actif2": "non",
- "services.test.files.file.name": "/tmp/file",
- "services.test.files.file.activate": false,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/tmp/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": false,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/11disabledifin_filelist_notexist/makedict/before.json b/tests/dictionaries_old/11disabledifin_filelist_notexist/makedict/before.json
index 7017b8a5b..ae1ef20d9 100644
--- a/tests/dictionaries_old/11disabledifin_filelist_notexist/makedict/before.json
+++ b/tests/dictionaries_old/11disabledifin_filelist_notexist/makedict/before.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/tmp/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabledifin_filelist_notexist/result/rougail/00-base.yml b/tests/dictionaries_old/11disabledifin_filelist_notexist/result/rougail/00-base.yml
new file mode 100644
index 000000000..0702f5f71
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifin_filelist_notexist/result/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabledifin_filelist_notexist/result/services/00-base.yml b/tests/dictionaries_old/11disabledifin_filelist_notexist/result/services/00-base.yml
new file mode 100644
index 000000000..9209d7615
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifin_filelist_notexist/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "unpossible" %}false{% else %}true{%
+ endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabledifin_filelist_notexist/tiramisu/base.py b/tests/dictionaries_old/11disabledifin_filelist_notexist/tiramisu/base.py
index b38de636d..9dbf2a1f1 100644
--- a/tests/dictionaries_old/11disabledifin_filelist_notexist/tiramisu/base.py
+++ b/tests/dictionaries_old/11disabledifin_filelist_notexist/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
-option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11])
-option_9.impl_set_information('source', "file")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/tmp/file")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/11disabledifin_filelist_notexist/tiramisu/multi.py b/tests/dictionaries_old/11disabledifin_filelist_notexist/tiramisu/multi.py
new file mode 100644
index 000000000..a29c14de5
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifin_filelist_notexist/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
+optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/tmp/file")
+option_21 = StrOption(name="source", doc="source", default="file")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
+optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/11disabledifin_filelist_notexist/xml/00-base.xml b/tests/dictionaries_old/11disabledifin_filelist_notexist/xml/00-base.xml
new file mode 100644
index 000000000..f99b30223
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifin_filelist_notexist/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+ /tmp/file
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ unpossible
+ afilllist
+
+
+
diff --git a/tests/dictionaries/11disabledifin_filelist_notexist/yml/00-base.yml b/tests/dictionaries_old/11disabledifin_filelist_notexist/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11disabledifin_filelist_notexist/yml/00-base.yml
rename to tests/dictionaries_old/11disabledifin_filelist_notexist/yml/00-base.yml
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/00-base.xml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/00-base.xml
deleted file mode 100644
index 373e6cfca..000000000
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- /tmp/file
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- unpossible
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/makedict/after.json b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/makedict/after.json
index 7017b8a5b..ae1ef20d9 100644
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/makedict/after.json
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/makedict/after.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/tmp/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/makedict/base.json b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/makedict/base.json
index 23361c536..1a6e1a8bd 100644
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/makedict/base.json
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/makedict/base.json
@@ -2,8 +2,9 @@
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
"rougail.general.mode_conteneur_actif2": "non",
- "services.test.files.file.name": "/tmp/file",
- "services.test.files.file.activate": false,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/tmp/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": false,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/makedict/before.json b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/makedict/before.json
index 7017b8a5b..ae1ef20d9 100644
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/makedict/before.json
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/makedict/before.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/tmp/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/result/rougail/00-base.yml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/result/rougail/00-base.yml
new file mode 100644
index 000000000..0702f5f71
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/result/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/result/services/00-base.yml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/result/services/00-base.yml
new file mode 100644
index 000000000..9209d7615
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "unpossible" %}false{% else %}true{%
+ endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/tiramisu/base.py b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/tiramisu/base.py
index b38de636d..9dbf2a1f1 100644
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/tiramisu/base.py
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
-option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11])
-option_9.impl_set_information('source', "file")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/tmp/file")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/tiramisu/multi.py b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/tiramisu/multi.py
new file mode 100644
index 000000000..a29c14de5
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
+optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/tmp/file")
+option_21 = StrOption(name="source", doc="source", default="file")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
+optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist/xml/00-base.xml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/xml/00-base.xml
new file mode 100644
index 000000000..f99b30223
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/xml/00-base.xml
@@ -0,0 +1,27 @@
+
+
+
+
+ /tmp/file
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ unpossible
+ afilllist
+
+
+
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist/yml/00-base.yml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11disabledifnotin_filelist_notexist/yml/00-base.yml
rename to tests/dictionaries_old/11disabledifnotin_filelist_notexist/yml/00-base.yml
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/00-base.xml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/00-base.xml
deleted file mode 100644
index 9d8e3356f..000000000
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/00-base.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
- /tmp/file
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- unpossible
- afilllist
-
-
- oui
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/makedict/after.json b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/makedict/after.json
index 7017b8a5b..ae1ef20d9 100644
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/makedict/after.json
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/makedict/after.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/tmp/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/makedict/base.json b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/makedict/base.json
index 23361c536..1a6e1a8bd 100644
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/makedict/base.json
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/makedict/base.json
@@ -2,8 +2,9 @@
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
"rougail.general.mode_conteneur_actif2": "non",
- "services.test.files.file.name": "/tmp/file",
- "services.test.files.file.activate": false,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/tmp/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": false,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/makedict/before.json b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/makedict/before.json
index 7017b8a5b..ae1ef20d9 100644
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/makedict/before.json
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/makedict/before.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/tmp/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/result/rougail/00-base.yml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..0702f5f71
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/result/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/result/services/00-base.yml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/result/services/00-base.yml
new file mode 100644
index 000000000..9209d7615
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "unpossible" %}false{% else %}true{%
+ endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py
index 947acdd98..9dbf2a1f1 100644
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True), 'condition_1': ParamOption(option_5, notraisepropertyerror=True), '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_9.impl_set_information('source', "file")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/tmp/file")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/tiramisu/multi.py b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/tiramisu/multi.py
new file mode 100644
index 000000000..c5537d8f7
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True), 'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'expected_1': ParamValue("oui"), 'reverse_condition_1': ParamValue(True), 'condition_operator': ParamValue("OR")})))
+optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/tmp/file")
+option_21 = StrOption(name="source", doc="source", default="file")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True), 'condition_1': ParamOption(option_8, notraisepropertyerror=True), 'expected_1': ParamValue("oui"), 'reverse_condition_1': ParamValue(True), 'condition_operator': ParamValue("OR")})))
+optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/xml/00-base.xml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/xml/00-base.xml
new file mode 100644
index 000000000..0e7d86f1e
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/xml/00-base.xml
@@ -0,0 +1,31 @@
+
+
+
+
+ /tmp/file
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ unpossible
+ afilllist
+
+
+ oui
+ afilllist
+
+
+
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/yml/00-base.yml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11disabledifnotin_filelist_notexist_multi/yml/00-base.yml
rename to tests/dictionaries_old/11disabledifnotin_filelist_notexist_multi/yml/00-base.yml
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/00-base.xml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/00-base.xml
deleted file mode 100644
index e82e5b27e..000000000
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/00-base.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
- /tmp/file
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- non
- statique
- condition
-
-
- statique
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/makedict/after.json b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/makedict/after.json
index 7017b8a5b..ae1ef20d9 100644
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/makedict/after.json
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/makedict/after.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/tmp/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/makedict/base.json b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/makedict/base.json
index 23361c536..1a6e1a8bd 100644
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/makedict/base.json
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/makedict/base.json
@@ -2,8 +2,9 @@
"rougail.general.condition": "non",
"rougail.general.mode_conteneur_actif": "non",
"rougail.general.mode_conteneur_actif2": "non",
- "services.test.files.file.name": "/tmp/file",
- "services.test.files.file.activate": false,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/tmp/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": false,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/makedict/before.json b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/makedict/before.json
index 7017b8a5b..ae1ef20d9 100644
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/makedict/before.json
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/makedict/before.json
@@ -11,19 +11,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/tmp/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/result/rougail/00-base.yml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/result/rougail/00-base.yml
new file mode 100644
index 000000000..d4635ae31
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/result/rougail/00-base.yml
@@ -0,0 +1,19 @@
+general:
+ condition:
+ type: choice
+ description: No change
+ default: non
+ choices:
+ - non
+ - statique
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/result/services/00-base.yml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/result/services/00-base.yml
new file mode 100644
index 000000000..30155012f
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /tmp/file:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "statique" %}false{% else %}true{%
+ endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py
index f3b8052a0..496a976eb 100644
--- a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = ChoiceOption(name="condition", doc="No change", values=('non', 'statique'), default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_11 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue("statique"), 'reverse_condition_0': ParamValue(True)})))
-option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11])
-option_9.impl_set_information('source', "file")
-option_8 = OptionDescription(name="files", doc="files", children=[option_9])
+option_11 = FilenameOption(name="source", doc="source", default="/tmp/file")
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="test", doc="test", children=[option_8, option_12, option_13])
-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])
+optiondescription_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="files", doc="files", children=[optiondescription_9])
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+option_14 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_7 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/tiramisu/multi.py b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/tiramisu/multi.py
new file mode 100644
index 000000000..7a91f5897
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/tiramisu/multi.py
@@ -0,0 +1,58 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = ChoiceOption(name="condition", doc="No change", values=('non', 'statique'), default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_12 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("statique"), 'reverse_condition_0': ParamValue(True)})))
+optiondescription_11 = OptionDescription(name="file", doc="file", children=[option_13, option_14, option_12])
+optiondescription_10 = OptionDescription(name="files", doc="files", children=[optiondescription_11])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_15])
+optiondescription_26.impl_set_information('type', "service")
+optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"}))
+optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25])
+option_6 = ChoiceOption(name="condition", doc="No change", values=('non', 'statique'), default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_20 = FilenameOption(name="name", doc="name", default="/tmp/file")
+option_21 = StrOption(name="source", doc="source", default="file")
+option_19 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_6, notraisepropertyerror=True), 'expected_0': ParamValue("statique"), 'reverse_condition_0': ParamValue(True)})))
+optiondescription_18 = OptionDescription(name="file", doc="file", children=[option_20, option_21, option_19])
+optiondescription_17 = OptionDescription(name="files", doc="files", children=[optiondescription_18])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_17, option_16, option_22])
+optiondescription_30.impl_set_information('type', "service")
+optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
+optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27])
diff --git a/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/xml/00-base.xml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/xml/00-base.xml
new file mode 100644
index 000000000..74d48ad2a
--- /dev/null
+++ b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/xml/00-base.xml
@@ -0,0 +1,29 @@
+
+
+
+
+ /tmp/file
+
+
+
+
+
+ non
+ non
+ statique
+
+
+ non
+
+
+ non
+
+
+
+
+
+ statique
+ afilllist
+
+
+
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/yml/00-base.yml b/tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/yml/00-base.yml
rename to tests/dictionaries_old/11disabledifnotin_filelist_notexist_validenum/yml/00-base.yml
diff --git a/tests/dictionaries_old/11multi_disabled_if_in_filelist/00-base.xml b/tests/dictionaries_old/11multi_disabled_if_in_filelist/00-base.xml
deleted file mode 100644
index 52a2c9458..000000000
--- a/tests/dictionaries_old/11multi_disabled_if_in_filelist/00-base.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- /tmp/file1
-
-
-
-
-
- non
-
-
- non
-
-
-
-
-
- non
- afilllist
-
-
- non
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/11multi_disabled_if_in_filelist/makedict/after.json b/tests/dictionaries_old/11multi_disabled_if_in_filelist/makedict/after.json
index e578b184c..bcd6b56d5 100644
--- a/tests/dictionaries_old/11multi_disabled_if_in_filelist/makedict/after.json
+++ b/tests/dictionaries_old/11multi_disabled_if_in_filelist/makedict/after.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11multi_disabled_if_in_filelist/makedict/base.json b/tests/dictionaries_old/11multi_disabled_if_in_filelist/makedict/base.json
index 4c33e3d9f..7dd7f60d0 100644
--- a/tests/dictionaries_old/11multi_disabled_if_in_filelist/makedict/base.json
+++ b/tests/dictionaries_old/11multi_disabled_if_in_filelist/makedict/base.json
@@ -1,8 +1,9 @@
{
"rougail.general.mode_conteneur_actif": "non",
"rougail.general.condition": "non",
- "services.test.files.file1.name": "/tmp/file1",
- "services.test.files.file1.activate": false,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file1.name": "/tmp/file1",
+ "services.test_service.files.file1.source": "file1",
+ "services.test_service.files.file1.activate": false,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/11multi_disabled_if_in_filelist/makedict/before.json b/tests/dictionaries_old/11multi_disabled_if_in_filelist/makedict/before.json
index e578b184c..bcd6b56d5 100644
--- a/tests/dictionaries_old/11multi_disabled_if_in_filelist/makedict/before.json
+++ b/tests/dictionaries_old/11multi_disabled_if_in_filelist/makedict/before.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file1.name": {
+ "services.test_service.files.file1.name": {
"owner": "default",
"value": "/tmp/file1"
},
- "services.test.files.file1.activate": {
+ "services.test_service.files.file1.source": {
+ "owner": "default",
+ "value": "file1"
+ },
+ "services.test_service.files.file1.activate": {
"owner": "default",
"value": false
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/11multi_disabled_if_in_filelist/result/rougail/00-base.yml b/tests/dictionaries_old/11multi_disabled_if_in_filelist/result/rougail/00-base.yml
new file mode 100644
index 000000000..b7524fed1
--- /dev/null
+++ b/tests/dictionaries_old/11multi_disabled_if_in_filelist/result/rougail/00-base.yml
@@ -0,0 +1,11 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ condition:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/11multi_disabled_if_in_filelist/result/services/00-base.yml b/tests/dictionaries_old/11multi_disabled_if_in_filelist/result/services/00-base.yml
new file mode 100644
index 000000000..cef7b6d98
--- /dev/null
+++ b/tests/dictionaries_old/11multi_disabled_if_in_filelist/result/services/00-base.yml
@@ -0,0 +1,7 @@
+test.service:
+ files:
+ /tmp/file1:
+ disabled:
+ type: jinja
+ jinja: '{% if __activer_clam == "non" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11multi_disabled_if_in_filelist/tiramisu/base.py b/tests/dictionaries_old/11multi_disabled_if_in_filelist/tiramisu/base.py
index c851d0498..ccc4de141 100644
--- a/tests/dictionaries_old/11multi_disabled_if_in_filelist/tiramisu/base.py
+++ b/tests/dictionaries_old/11multi_disabled_if_in_filelist/tiramisu/base.py
@@ -1,27 +1,40 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_9 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_10 = BoolOption(name="activate", doc="activate", default=False)
-option_8 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10])
-option_8.impl_set_information('source', "file1")
-option_7 = OptionDescription(name="files", doc="files", children=[option_8])
+option_10 = FilenameOption(name="source", doc="source", default="/tmp/file1")
option_11 = BoolOption(name="activate", doc="activate", default=True)
-option_12 = BoolOption(name="manage", doc="manage", default=True)
-option_6 = OptionDescription(name="test", doc="test", children=[option_7, option_11, option_12])
-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])
+optiondescription_8 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_11])
+optiondescription_7 = OptionDescription(name="files", doc="files", children=[optiondescription_8])
+option_12 = BoolOption(name="activate", doc="activate", default=True)
+option_13 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_6 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_7, option_12, option_13])
+optiondescription_6.impl_set_information('type', "service")
+optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/11multi_disabled_if_in_filelist/tiramisu/multi.py b/tests/dictionaries_old/11multi_disabled_if_in_filelist/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/11multi_disabled_if_in_filelist/tiramisu/multi.py
rename to tests/dictionaries_old/11multi_disabled_if_in_filelist/tiramisu/multi.py
diff --git a/tests/dictionaries/11multi_disabled_if_in_filelist/xml/00-base.xml b/tests/dictionaries_old/11multi_disabled_if_in_filelist/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/11multi_disabled_if_in_filelist/xml/00-base.xml
rename to tests/dictionaries_old/11multi_disabled_if_in_filelist/xml/00-base.xml
diff --git a/tests/dictionaries/11multi_disabled_if_in_filelist/yml/00-base.yml b/tests/dictionaries_old/11multi_disabled_if_in_filelist/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11multi_disabled_if_in_filelist/yml/00-base.yml
rename to tests/dictionaries_old/11multi_disabled_if_in_filelist/yml/00-base.yml
diff --git a/tests/dictionaries_old/11valid_enum_function/00-base.xml b/tests/dictionaries_old/11valid_enum_function/00-base.xml
deleted file mode 100644
index 8d022f335..000000000
--- a/tests/dictionaries_old/11valid_enum_function/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- 9
-
-
-
-
-
- trange
- 0
- 10
- var
-
-
-
diff --git a/tests/dictionaries_old/11valid_enum_function/result/rougail/00-base.yml b/tests/dictionaries_old/11valid_enum_function/result/rougail/00-base.yml
new file mode 100644
index 000000000..656fcdd61
--- /dev/null
+++ b/tests/dictionaries_old/11valid_enum_function/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ var:
+ type: choice
+ description: New variable
+ default: 9
+ choices:
+ - type: jinja
+ jinja: '{{ 0 | trange(10) }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/11valid_enum_function/tiramisu/base.py b/tests/dictionaries_old/11valid_enum_function/tiramisu/base.py
index 244e84463..60f59c6ae 100644
--- a/tests/dictionaries_old/11valid_enum_function/tiramisu/base.py
+++ b/tests/dictionaries_old/11valid_enum_function/tiramisu/base.py
@@ -1,17 +1,59 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = ChoiceOption(name="var", doc="New variable", values=Calculation(func.trange, Params((ParamValue(0), ParamValue(10)))), default=9, 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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.var'] = "{{ 0 | trange(10) }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = ChoiceOption(name="var", doc="New variable", values=Calculation(func.jinja_to_function, Params(())), default=9, properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/11valid_enum_function/tiramisu/multi.py b/tests/dictionaries_old/11valid_enum_function/tiramisu/multi.py
new file mode 100644
index 000000000..babe7634a
--- /dev/null
+++ b/tests/dictionaries_old/11valid_enum_function/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = ChoiceOption(name="var", doc="New variable", values=Calculation(func.trange, Params((ParamValue(0), ParamValue(10)))), default=9, properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = ChoiceOption(name="var", doc="New variable", values=Calculation(func.trange, Params((ParamValue(0), ParamValue(10)))), default=9, properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/11valid_enum_function/xml/00-base.xml b/tests/dictionaries_old/11valid_enum_function/xml/00-base.xml
new file mode 100644
index 000000000..c7a623d62
--- /dev/null
+++ b/tests/dictionaries_old/11valid_enum_function/xml/00-base.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ 9
+
+ 0
+ 10
+
+
+
+
+
+
diff --git a/tests/dictionaries/11valid_enum_function/yml/00-base.yml b/tests/dictionaries_old/11valid_enum_function/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/11valid_enum_function/yml/00-base.yml
rename to tests/dictionaries_old/11valid_enum_function/yml/00-base.yml
diff --git a/tests/dictionaries_old/11valid_enum_variable/00-base.xml b/tests/dictionaries_old/11valid_enum_variable/00-base.xml
deleted file mode 100644
index aacb3e1ef..000000000
--- a/tests/dictionaries_old/11valid_enum_variable/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- a
-
-
- a
- b
- c
-
-
-
-
-
- var
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/11valid_enum_variable/result/rougail/00-base.yml b/tests/dictionaries_old/11valid_enum_variable/result/rougail/00-base.yml
new file mode 100644
index 000000000..ab1accacb
--- /dev/null
+++ b/tests/dictionaries_old/11valid_enum_variable/result/rougail/00-base.yml
@@ -0,0 +1,17 @@
+general:
+ mode_conteneur_actif:
+ type: choice
+ description: No change
+ default: a
+ choices:
+ - type: variable
+ variable: rougail.general.var
+ var:
+ type: string
+ description: New variable
+ multi: true
+ default:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries_old/11valid_enum_variable/tiramisu/base.py b/tests/dictionaries_old/11valid_enum_variable/tiramisu/base.py
index ffacedc48..fe0ebb87b 100644
--- a/tests/dictionaries_old/11valid_enum_variable/tiramisu/base.py
+++ b/tests/dictionaries_old/11valid_enum_variable/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_4 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
option_3 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func.calc_value, Params((ParamOption(option_4)))), default="a", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/11valid_enum_variable/tiramisu/multi.py b/tests/dictionaries_old/11valid_enum_variable/tiramisu/multi.py
new file mode 100644
index 000000000..f375bb3e9
--- /dev/null
+++ b/tests/dictionaries_old/11valid_enum_variable/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
+option_2 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func.calc_value, Params((ParamOption(option_3)))), default="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_6 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
+option_5 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func.calc_value, Params((ParamOption(option_6)))), default="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/11valid_enum_variable/xml/00-base.xml b/tests/dictionaries_old/11valid_enum_variable/xml/00-base.xml
new file mode 100644
index 000000000..c758f48a1
--- /dev/null
+++ b/tests/dictionaries_old/11valid_enum_variable/xml/00-base.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ a
+ var
+
+
+ a
+ b
+ c
+
+
+
+
+
diff --git a/tests/dictionaries_old/11valid_enum_variable/yml/00-base.yml b/tests/dictionaries_old/11valid_enum_variable/yml/00-base.yml
new file mode 100644
index 000000000..8cfd8e528
--- /dev/null
+++ b/tests/dictionaries_old/11valid_enum_variable/yml/00-base.yml
@@ -0,0 +1,23 @@
+version: '0.10'
+variables:
+- family:
+ - name: general
+ variables:
+ - variable:
+ - name: mode_conteneur_actif
+ type: choice
+ description: No change
+ value:
+ - type: string
+ text: a
+ choice:
+ - type: variable
+ text: var
+ - name: var
+ type: string
+ description: New variable
+ multi: true
+ value:
+ - text: a
+ - text: b
+ - text: c
diff --git a/tests/dictionaries_old/20family_append/00-base.xml b/tests/dictionaries_old/20family_append/00-base.xml
deleted file mode 100644
index ccf8e4dd4..000000000
--- a/tests/dictionaries_old/20family_append/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/20family_append/01-base.xml b/tests/dictionaries_old/20family_append/01-base.xml
deleted file mode 100644
index 8bd81834e..000000000
--- a/tests/dictionaries_old/20family_append/01-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/20family_append/result/rougail/00-base.yml b/tests/dictionaries_old/20family_append/result/rougail/00-base.yml
new file mode 100644
index 000000000..765ba2c20
--- /dev/null
+++ b/tests/dictionaries_old/20family_append/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_append/result/rougail/01-base.yml b/tests/dictionaries_old/20family_append/result/rougail/01-base.yml
new file mode 100644
index 000000000..6819701d7
--- /dev/null
+++ b/tests/dictionaries_old/20family_append/result/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_append/tiramisu/base.py b/tests/dictionaries_old/20family_append/tiramisu/base.py
index ac14e01ca..cfd3ba6ba 100644
--- a/tests/dictionaries_old/20family_append/tiramisu/base.py
+++ b/tests/dictionaries_old/20family_append/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_append/tiramisu/multi.py b/tests/dictionaries_old/20family_append/tiramisu/multi.py
new file mode 100644
index 000000000..56228fb10
--- /dev/null
+++ b/tests/dictionaries_old/20family_append/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/20family_append/xml/00-base.xml b/tests/dictionaries_old/20family_append/xml/00-base.xml
new file mode 100644
index 000000000..1b623d241
--- /dev/null
+++ b/tests/dictionaries_old/20family_append/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/20family_append/xml/01-base.xml b/tests/dictionaries_old/20family_append/xml/01-base.xml
new file mode 100644
index 000000000..82a942d6a
--- /dev/null
+++ b/tests/dictionaries_old/20family_append/xml/01-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/20family_append/yml/00-base.yml b/tests/dictionaries_old/20family_append/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_append/yml/00-base.yml
rename to tests/dictionaries_old/20family_append/yml/00-base.yml
diff --git a/tests/dictionaries/20family_append/yml/01-base.yml b/tests/dictionaries_old/20family_append/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/20family_append/yml/01-base.yml
rename to tests/dictionaries_old/20family_append/yml/01-base.yml
diff --git a/tests/dictionaries/20override/__init__.py b/tests/dictionaries_old/20family_disabled/__init__.py
similarity index 100%
rename from tests/dictionaries/20override/__init__.py
rename to tests/dictionaries_old/20family_disabled/__init__.py
diff --git a/tests/dictionaries_old/20family_disabled/makedict/after.json b/tests/dictionaries_old/20family_disabled/makedict/after.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/tests/dictionaries_old/20family_disabled/makedict/after.json
@@ -0,0 +1 @@
+{}
diff --git a/tests/dictionaries_old/20family_disabled/makedict/base.json b/tests/dictionaries_old/20family_disabled/makedict/base.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/tests/dictionaries_old/20family_disabled/makedict/base.json
@@ -0,0 +1 @@
+{}
diff --git a/tests/dictionaries_old/20family_disabled/makedict/before.json b/tests/dictionaries_old/20family_disabled/makedict/before.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/tests/dictionaries_old/20family_disabled/makedict/before.json
@@ -0,0 +1 @@
+{}
diff --git a/tests/dictionaries_old/20family_disabled/result/rougail/00-base.yml b/tests/dictionaries_old/20family_disabled/result/rougail/00-base.yml
new file mode 100644
index 000000000..522bc25aa
--- /dev/null
+++ b/tests/dictionaries_old/20family_disabled/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ disabled: true
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ disabled: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_disabled/tiramisu/base.py b/tests/dictionaries_old/20family_disabled/tiramisu/base.py
new file mode 100644
index 000000000..f2090f1c0
--- /dev/null
+++ b/tests/dictionaries_old/20family_disabled/tiramisu/base.py
@@ -0,0 +1,29 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"disabled", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_disabled/tiramisu/multi.py b/tests/dictionaries_old/20family_disabled/tiramisu/multi.py
new file mode 100644
index 000000000..318c2160e
--- /dev/null
+++ b/tests/dictionaries_old/20family_disabled/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"disabled", "normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"disabled", "normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/20family_disabled/xml/00-base.xml b/tests/dictionaries_old/20family_disabled/xml/00-base.xml
new file mode 100644
index 000000000..22960b089
--- /dev/null
+++ b/tests/dictionaries_old/20family_disabled/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/20family_disabled/yml/00-base.yml b/tests/dictionaries_old/20family_disabled/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_disabled/yml/00-base.yml
rename to tests/dictionaries_old/20family_disabled/yml/00-base.yml
diff --git a/tests/dictionaries_old/20family_dynamic/00-base.xml b/tests/dictionaries_old/20family_dynamic/00-base.xml
deleted file mode 100644
index ca18543d3..000000000
--- a/tests/dictionaries_old/20family_dynamic/00-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
- val1
- val2
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/20family_dynamic/result/rougail/00-base.yml b/tests/dictionaries_old/20family_dynamic/result/rougail/00-base.yml
new file mode 100644
index 000000000..4839ed54c
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic/result/rougail/00-base.yml
@@ -0,0 +1,15 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_dynamic/tiramisu/base.py b/tests/dictionaries_old/20family_dynamic/tiramisu/base.py
index b7216cf44..9c1e2d0b5 100644
--- a/tests/dictionaries_old/20family_dynamic/tiramisu/base.py
+++ b/tests/dictionaries_old/20family_dynamic/tiramisu/base.py
@@ -1,20 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-from rougail.tiramisu import ConvertDynOptionDescription
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-option_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_dynamic/tiramisu/multi.py b/tests/dictionaries_old/20family_dynamic/tiramisu/multi.py
new file mode 100644
index 000000000..8f4723e66
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic/tiramisu/multi.py
@@ -0,0 +1,39 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from rougail.tiramisu import ConvertDynOptionDescription
+option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"normal"}))
+option_8 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+optiondescription_7 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_6, notraisepropertyerror=True)))), children=[option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/20family_dynamic/xml/00-base.xml b/tests/dictionaries_old/20family_dynamic/xml/00-base.xml
new file mode 100644
index 000000000..dcae232ba
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic/xml/00-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ val1
+ val2
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/20family_dynamic/yml/00-base.yml b/tests/dictionaries_old/20family_dynamic/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_dynamic/yml/00-base.yml
rename to tests/dictionaries_old/20family_dynamic/yml/00-base.yml
diff --git a/tests/dictionaries_old/20family_dynamic_calc/00-base.xml b/tests/dictionaries_old/20family_dynamic_calc/00-base.xml
deleted file mode 100644
index 81390f862..000000000
--- a/tests/dictionaries_old/20family_dynamic_calc/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- val1
- val2
-
-
-
-
- val
-
-
-
-
-
-
-
-
- vardynval1
- newvar
-
-
-
diff --git a/tests/dictionaries_old/20family_dynamic_calc/result/rougail/00-base.yml b/tests/dictionaries_old/20family_dynamic_calc/result/rougail/00-base.yml
new file mode 100644
index 000000000..52b8ab369
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_calc/result/rougail/00-base.yml
@@ -0,0 +1,23 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default: val
+new:
+ newvar:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __vardynval1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_dynamic_calc/tiramisu/base.py b/tests/dictionaries_old/20family_dynamic_calc/tiramisu/base.py
index d5a8f08e6..4a1f6b8e1 100644
--- a/tests/dictionaries_old/20family_dynamic_calc/tiramisu/base.py
+++ b/tests/dictionaries_old/20family_dynamic_calc/tiramisu/base.py
@@ -1,22 +1,63 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-from rougail.tiramisu import ConvertDynOptionDescription
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.new.newvar'] = "{{ __vardynval1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
option_5 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
-option_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
-option_7 = StrOption(name="newvar", doc="No change", default=Calculation(func.calc_val, Params((ParamDynOption(option_5, 'val1', option_4)))), properties=frozenset({"normal"}))
-option_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4, option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+option_7 = StrOption(name="newvar", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.new.newvar), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_dynamic_calc/tiramisu/multi.py b/tests/dictionaries_old/20family_dynamic_calc/tiramisu/multi.py
new file mode 100644
index 000000000..7f350e073
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_calc/tiramisu/multi.py
@@ -0,0 +1,43 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from rougail.tiramisu import ConvertDynOptionDescription
+option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="newvar", doc="No change", default=Calculation(func.calc_val, Params((ParamDynOption(option_4, 'val1', optiondescription_3)))), properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+option_10 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_9 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_8, notraisepropertyerror=True)))), children=[option_10], properties=frozenset({"normal"}))
+option_12 = StrOption(name="newvar", doc="No change", default=Calculation(func.calc_val, Params((ParamDynOption(option_10, 'val1', optiondescription_9)))), properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="new", doc="new", children=[option_12], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7, optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/20family_dynamic_calc/xml/00-base.xml b/tests/dictionaries_old/20family_dynamic_calc/xml/00-base.xml
new file mode 100644
index 000000000..d99e59907
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_calc/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ val1
+ val2
+
+
+
+
+ val
+
+
+
+
+
+
+
+
+ vardynval1
+ newvar
+
+
+
diff --git a/tests/dictionaries/20family_dynamic_calc/yml/00-base.yml b/tests/dictionaries_old/20family_dynamic_calc/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_dynamic_calc/yml/00-base.yml
rename to tests/dictionaries_old/20family_dynamic_calc/yml/00-base.yml
diff --git a/tests/dictionaries_old/20family_dynamic_calc2/00-base.xml b/tests/dictionaries_old/20family_dynamic_calc2/00-base.xml
deleted file mode 100644
index b74388845..000000000
--- a/tests/dictionaries_old/20family_dynamic_calc2/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- val1
- val2
-
-
-
-
- val
-
-
-
-
-
-
-
-
- non
- dyn
-
-
-
diff --git a/tests/dictionaries_old/20family_dynamic_calc2/result/rougail/00-base.yml b/tests/dictionaries_old/20family_dynamic_calc2/result/rougail/00-base.yml
new file mode 100644
index 000000000..b6920b978
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_calc2/result/rougail/00-base.yml
@@ -0,0 +1,23 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default: val
+ hidden:
+ type: jinja
+ jinja: '{% if rougail.new.newvar == "non" %}true{% else %}false{% endif %}'
+new:
+ newvar:
+ type: string
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_dynamic_calc2/tiramisu/base.py b/tests/dictionaries_old/20family_dynamic_calc2/tiramisu/base.py
index a4b53edd5..01e830837 100644
--- a/tests/dictionaries_old/20family_dynamic_calc2/tiramisu/base.py
+++ b/tests/dictionaries_old/20family_dynamic_calc2/tiramisu/base.py
@@ -1,22 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-from rougail.tiramisu import ConvertDynOptionDescription
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
option_7 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
-option_5 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_7, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")})), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_7, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")}))}))
-option_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_7, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")}))}))
-option_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4, option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_dynamic_calc2/tiramisu/multi.py b/tests/dictionaries_old/20family_dynamic_calc2/tiramisu/multi.py
new file mode 100644
index 000000000..8d6949b3a
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_calc2/tiramisu/multi.py
@@ -0,0 +1,43 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from rougail.tiramisu import ConvertDynOptionDescription
+option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_6 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
+option_4 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+option_12 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
+option_10 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_12, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('force_default_on_freeze'), kwargs={'condition': ParamOption(option_12, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_9 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_8, notraisepropertyerror=True)))), children=[option_10], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('hidden'), kwargs={'condition': ParamOption(option_12, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_11 = OptionDescription(name="new", doc="new", children=[option_12], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7, optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/20family_dynamic_calc2/xml/00-base.xml b/tests/dictionaries_old/20family_dynamic_calc2/xml/00-base.xml
new file mode 100644
index 000000000..ee0aa2f6b
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_calc2/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ val1
+ val2
+
+
+
+
+ val
+
+
+
+
+
+
+
+
+ non
+ dyn
+
+
+
diff --git a/tests/dictionaries/20family_dynamic_calc2/yml/00-base.yml b/tests/dictionaries_old/20family_dynamic_calc2/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_dynamic_calc2/yml/00-base.yml
rename to tests/dictionaries_old/20family_dynamic_calc2/yml/00-base.yml
diff --git a/tests/dictionaries_old/20family_dynamic_calc_suffix/00-base.xml b/tests/dictionaries_old/20family_dynamic_calc_suffix/00-base.xml
deleted file mode 100644
index f0dcaf6a4..000000000
--- a/tests/dictionaries_old/20family_dynamic_calc_suffix/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- val1
- val2
-
-
-
-
- val
-
-
-
-
-
-
-
-
-
- vardyn
-
-
-
diff --git a/tests/dictionaries_old/20family_dynamic_calc_suffix/result/rougail/00-base.yml b/tests/dictionaries_old/20family_dynamic_calc_suffix/result/rougail/00-base.yml
new file mode 100644
index 000000000..ab109ddea
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_calc_suffix/result/rougail/00-base.yml
@@ -0,0 +1,25 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __suffix | calc_val }}'
+ params:
+ __suffix:
+ type: suffix
+new:
+ newvar:
+ type: string
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_dynamic_calc_suffix/tiramisu/base.py b/tests/dictionaries_old/20family_dynamic_calc_suffix/tiramisu/base.py
index 5987a765a..992aaabf5 100644
--- a/tests/dictionaries_old/20family_dynamic_calc_suffix/tiramisu/base.py
+++ b/tests/dictionaries_old/20family_dynamic_calc_suffix/tiramisu/base.py
@@ -1,22 +1,63 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-from rougail.tiramisu import ConvertDynOptionDescription
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.dyn.vardyn'] = "{{ __suffix | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_5 = StrOption(name="vardyn", doc="No change", default=Calculation(func.calc_val, Params((ParamSuffix()))), properties=frozenset({"normal"}))
-option_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.dyn.vardyn), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), '__suffix': ParamSuffix()})), properties=frozenset({"normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
option_7 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
-option_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4, option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_dynamic_calc_suffix/tiramisu/multi.py b/tests/dictionaries_old/20family_dynamic_calc_suffix/tiramisu/multi.py
new file mode 100644
index 000000000..a71a1f251
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_calc_suffix/tiramisu/multi.py
@@ -0,0 +1,43 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from rougail.tiramisu import ConvertDynOptionDescription
+option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="vardyn", doc="No change", default=Calculation(func.calc_val, Params((ParamSuffix()))), properties=frozenset({"normal"}))
+optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+option_10 = StrOption(name="vardyn", doc="No change", default=Calculation(func.calc_val, Params((ParamSuffix()))), properties=frozenset({"normal"}))
+optiondescription_9 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_8, notraisepropertyerror=True)))), children=[option_10], properties=frozenset({"normal"}))
+option_12 = StrOption(name="newvar", doc="No change", properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="new", doc="new", children=[option_12], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7, optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/20family_dynamic_calc_suffix/xml/00-base.xml b/tests/dictionaries_old/20family_dynamic_calc_suffix/xml/00-base.xml
new file mode 100644
index 000000000..50975fb75
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_calc_suffix/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ val1
+ val2
+
+
+
+
+ val
+
+
+
+
+
+
+
+
+
+ vardyn
+
+
+
diff --git a/tests/dictionaries/20family_dynamic_calc_suffix/yml/00-base.yml b/tests/dictionaries_old/20family_dynamic_calc_suffix/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_dynamic_calc_suffix/yml/00-base.yml
rename to tests/dictionaries_old/20family_dynamic_calc_suffix/yml/00-base.yml
diff --git a/tests/dictionaries_old/20family_dynamic_description/00-base.xml b/tests/dictionaries_old/20family_dynamic_description/00-base.xml
deleted file mode 100644
index 39c223320..000000000
--- a/tests/dictionaries_old/20family_dynamic_description/00-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
- val1
- val2
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/20family_dynamic_description/result/rougail/00-base.yml b/tests/dictionaries_old/20family_dynamic_description/result/rougail/00-base.yml
new file mode 100644
index 000000000..05264b5c7
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_description/result/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ description: 'Dyn '
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_dynamic_description/tiramisu/base.py b/tests/dictionaries_old/20family_dynamic_description/tiramisu/base.py
index a6a674daf..a04891cf6 100644
--- a/tests/dictionaries_old/20family_dynamic_description/tiramisu/base.py
+++ b/tests/dictionaries_old/20family_dynamic_description/tiramisu/base.py
@@ -1,20 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-from rougail.tiramisu import ConvertDynOptionDescription
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
-option_4 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_dynamic_description/tiramisu/multi.py b/tests/dictionaries_old/20family_dynamic_description/tiramisu/multi.py
new file mode 100644
index 000000000..af0947212
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_description/tiramisu/multi.py
@@ -0,0 +1,39 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from rougail.tiramisu import ConvertDynOptionDescription
+option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"normal"}))
+option_8 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+optiondescription_7 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func.calc_value, Params((ParamOption(option_6, notraisepropertyerror=True)))), children=[option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/20family_dynamic_description/xml/00-base.xml b/tests/dictionaries_old/20family_dynamic_description/xml/00-base.xml
new file mode 100644
index 000000000..f9e96c219
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_description/xml/00-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ val1
+ val2
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/20family_dynamic_description/yml/00-base.yml b/tests/dictionaries_old/20family_dynamic_description/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_dynamic_description/yml/00-base.yml
rename to tests/dictionaries_old/20family_dynamic_description/yml/00-base.yml
diff --git a/tests/dictionaries/20override_no_templating/__init__.py b/tests/dictionaries_old/20family_dynamic_jinja_fill/__init__.py
similarity index 100%
rename from tests/dictionaries/20override_no_templating/__init__.py
rename to tests/dictionaries_old/20family_dynamic_jinja_fill/__init__.py
diff --git a/tests/dictionaries_old/20family_dynamic_jinja_fill/makedict/after.json b/tests/dictionaries_old/20family_dynamic_jinja_fill/makedict/after.json
new file mode 100644
index 000000000..6bc6e807c
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_jinja_fill/makedict/after.json
@@ -0,0 +1,21 @@
+{
+ "rougail.general.varname": {
+ "owner": "default",
+ "value": [
+ "val1",
+ "val2"
+ ]
+ },
+ "rougail.dynval1.vardynval1": {
+ "owner": "default",
+ "value": "val"
+ },
+ "rougail.dynval2.vardynval2": {
+ "owner": "default",
+ "value": "val"
+ },
+ "rougail.new.newvar": {
+ "owner": "default",
+ "value": "val"
+ }
+}
diff --git a/tests/dictionaries_old/20family_dynamic_jinja_fill/makedict/base.json b/tests/dictionaries_old/20family_dynamic_jinja_fill/makedict/base.json
new file mode 100644
index 000000000..9b99cc844
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_jinja_fill/makedict/base.json
@@ -0,0 +1,9 @@
+{
+ "rougail.general.varname": [
+ "val1",
+ "val2"
+ ],
+ "rougail.dynval1.vardynval1": "val",
+ "rougail.dynval2.vardynval2": "val",
+ "rougail.new.newvar": "val"
+}
diff --git a/tests/dictionaries_old/20family_dynamic_jinja_fill/makedict/before.json b/tests/dictionaries_old/20family_dynamic_jinja_fill/makedict/before.json
new file mode 100644
index 000000000..6bc6e807c
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_jinja_fill/makedict/before.json
@@ -0,0 +1,21 @@
+{
+ "rougail.general.varname": {
+ "owner": "default",
+ "value": [
+ "val1",
+ "val2"
+ ]
+ },
+ "rougail.dynval1.vardynval1": {
+ "owner": "default",
+ "value": "val"
+ },
+ "rougail.dynval2.vardynval2": {
+ "owner": "default",
+ "value": "val"
+ },
+ "rougail.new.newvar": {
+ "owner": "default",
+ "value": "val"
+ }
+}
diff --git a/tests/dictionaries_old/20family_dynamic_jinja_fill/result/rougail/00-base.yml b/tests/dictionaries_old/20family_dynamic_jinja_fill/result/rougail/00-base.yml
new file mode 100644
index 000000000..6a91a60b2
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_jinja_fill/result/rougail/00-base.yml
@@ -0,0 +1,23 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default: val
+new:
+ newvar:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ vardynval1 }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_dynamic_jinja_fill/tiramisu/base.py b/tests/dictionaries_old/20family_dynamic_jinja_fill/tiramisu/base.py
new file mode 100644
index 000000000..665c85d00
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_jinja_fill/tiramisu/base.py
@@ -0,0 +1,63 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.new.newvar'] = "{{ vardynval1 }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+option_7 = StrOption(name="newvar", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.new.newvar), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_dynamic_jinja_fill/tiramisu/multi.py b/tests/dictionaries_old/20family_dynamic_jinja_fill/tiramisu/multi.py
new file mode 100644
index 000000000..162505877
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_jinja_fill/tiramisu/multi.py
@@ -0,0 +1,74 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['1.rougail.new.newvar'] = "{{ vardynval1 }}"
+dict_env['2.rougail.new.newvar'] = "{{ vardynval1 }}"
+from rougail.tiramisu import ConvertDynOptionDescription
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="newvar", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardynval1': ParamDynOption(option_4, 'val1', optiondescription_3)})), properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+option_10 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_9 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_8, notraisepropertyerror=True)))), children=[option_10], properties=frozenset({"normal"}))
+option_12 = StrOption(name="newvar", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue("2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardynval1': ParamDynOption(option_10, 'val1', optiondescription_9)})), properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="new", doc="new", children=[option_12], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7, optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/20family_dynamic_jinja_fill/xml/00-base.xml b/tests/dictionaries_old/20family_dynamic_jinja_fill/xml/00-base.xml
new file mode 100644
index 000000000..6c3d8bd6f
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_jinja_fill/xml/00-base.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ val1
+ val2
+
+
+
+
+ val
+
+
+
+
+
+
+
+
+ newvar
+
+
+
diff --git a/tests/dictionaries/20family_dynamic_jinja_fill/yml/00-base.yml b/tests/dictionaries_old/20family_dynamic_jinja_fill/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_dynamic_jinja_fill/yml/00-base.yml
rename to tests/dictionaries_old/20family_dynamic_jinja_fill/yml/00-base.yml
diff --git a/tests/dictionaries/20override_source/__init__.py b/tests/dictionaries_old/20family_dynamic_leadership/__init__.py
similarity index 100%
rename from tests/dictionaries/20override_source/__init__.py
rename to tests/dictionaries_old/20family_dynamic_leadership/__init__.py
diff --git a/tests/dictionaries_old/20family_dynamic_leadership/makedict/after.json b/tests/dictionaries_old/20family_dynamic_leadership/makedict/after.json
new file mode 100644
index 000000000..4fc291d5b
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_leadership/makedict/after.json
@@ -0,0 +1,25 @@
+{
+ "rougail.general.varname": {
+ "owner": "default",
+ "value": [
+ "val1",
+ "val2"
+ ]
+ },
+ "rougail.dynval1.vardynval1": {
+ "owner": "default",
+ "value": null
+ },
+ "rougail.dynval1.leadershipval1.leaderval1": {
+ "owner": "default",
+ "value": []
+ },
+ "rougail.dynval2.vardynval2": {
+ "owner": "default",
+ "value": null
+ },
+ "rougail.dynval2.leadershipval2.leaderval2": {
+ "owner": "default",
+ "value": []
+ }
+}
diff --git a/tests/dictionaries_old/20family_dynamic_leadership/makedict/base.json b/tests/dictionaries_old/20family_dynamic_leadership/makedict/base.json
new file mode 100644
index 000000000..b554bc672
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_leadership/makedict/base.json
@@ -0,0 +1,10 @@
+{
+ "rougail.general.varname": [
+ "val1",
+ "val2"
+ ],
+ "rougail.dynval1.vardynval1": null,
+ "rougail.dynval1.leadershipval1.leaderval1": [],
+ "rougail.dynval2.vardynval2": null,
+ "rougail.dynval2.leadershipval2.leaderval2": []
+}
diff --git a/tests/dictionaries_old/20family_dynamic_leadership/makedict/before.json b/tests/dictionaries_old/20family_dynamic_leadership/makedict/before.json
new file mode 100644
index 000000000..4fc291d5b
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_leadership/makedict/before.json
@@ -0,0 +1,25 @@
+{
+ "rougail.general.varname": {
+ "owner": "default",
+ "value": [
+ "val1",
+ "val2"
+ ]
+ },
+ "rougail.dynval1.vardynval1": {
+ "owner": "default",
+ "value": null
+ },
+ "rougail.dynval1.leadershipval1.leaderval1": {
+ "owner": "default",
+ "value": []
+ },
+ "rougail.dynval2.vardynval2": {
+ "owner": "default",
+ "value": null
+ },
+ "rougail.dynval2.leadershipval2.leaderval2": {
+ "owner": "default",
+ "value": []
+ }
+}
diff --git a/tests/dictionaries_old/20family_dynamic_leadership/result/rougail/00-base.yml b/tests/dictionaries_old/20family_dynamic_leadership/result/rougail/00-base.yml
new file mode 100644
index 000000000..9e3a92183
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_leadership/result/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ leadership:
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_dynamic_leadership/tiramisu/base.py b/tests/dictionaries_old/20family_dynamic_leadership/tiramisu/base.py
new file mode 100644
index 000000000..d784ee0d9
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_leadership/tiramisu/base.py
@@ -0,0 +1,35 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_8 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_9 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_6 = Leadership(name="leadership", doc="leadership", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5, optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_dynamic_leadership/tiramisu/multi.py b/tests/dictionaries_old/20family_dynamic_leadership/tiramisu/multi.py
new file mode 100644
index 000000000..e4a0819ea
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_leadership/tiramisu/multi.py
@@ -0,0 +1,47 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from rougail.tiramisu import ConvertDynOptionDescription
+option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_5 = Leadership(name="leadership", doc="leadership", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18])
+option_10 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"normal"}))
+option_12 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+option_14 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_15 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_16 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_13 = Leadership(name="leadership", doc="leadership", children=[option_14, option_15, option_16], properties=frozenset({"normal"}))
+optiondescription_11 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[option_12, optiondescription_13], properties=frozenset({"normal"}))
+optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_19 = OptionDescription(name="2", doc="2", children=[optiondescription_20])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_19])
diff --git a/tests/dictionaries_old/20family_dynamic_leadership/xml/00-base.xml b/tests/dictionaries_old/20family_dynamic_leadership/xml/00-base.xml
new file mode 100644
index 000000000..713526082
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_leadership/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ val1
+ val2
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/20family_dynamic_leadership/yml/00-base.yml b/tests/dictionaries_old/20family_dynamic_leadership/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_dynamic_leadership/yml/00-base.yml
rename to tests/dictionaries_old/20family_dynamic_leadership/yml/00-base.yml
diff --git a/tests/dictionaries_old/20family_dynamic_number/00-base.xml b/tests/dictionaries_old/20family_dynamic_number/00-base.xml
deleted file mode 100644
index 807034700..000000000
--- a/tests/dictionaries_old/20family_dynamic_number/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- 1
- 2
-
-
-
-
- val
-
-
-
-
-
-
-
-
- vardyn1
- newvar
-
-
-
diff --git a/tests/dictionaries_old/20family_dynamic_number/result/rougail/00-base.yml b/tests/dictionaries_old/20family_dynamic_number/result/rougail/00-base.yml
new file mode 100644
index 000000000..f1fc431e1
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_number/result/rougail/00-base.yml
@@ -0,0 +1,23 @@
+general:
+ varname:
+ type: number
+ description: No change
+ multi: true
+ default:
+ - 1
+ - 2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ default: val
+new:
+ newvar:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ __vardyn1 | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_dynamic_number/tiramisu/base.py b/tests/dictionaries_old/20family_dynamic_number/tiramisu/base.py
index 6214b8842..880721bcd 100644
--- a/tests/dictionaries_old/20family_dynamic_number/tiramisu/base.py
+++ b/tests/dictionaries_old/20family_dynamic_number/tiramisu/base.py
@@ -1,22 +1,63 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-from rougail.tiramisu import ConvertDynOptionDescription
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.new.newvar'] = "{{ __vardyn1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = IntOption(name="varname", doc="No change", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
option_5 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
-option_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
-option_7 = StrOption(name="newvar", doc="No change", default=Calculation(func.calc_val, Params((ParamDynOption(option_5, '1', option_4)))), properties=frozenset({"normal"}))
-option_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4, option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+option_7 = StrOption(name="newvar", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.new.newvar), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_dynamic_number/tiramisu/multi.py b/tests/dictionaries_old/20family_dynamic_number/tiramisu/multi.py
new file mode 100644
index 000000000..8a4d3ab19
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_number/tiramisu/multi.py
@@ -0,0 +1,43 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from rougail.tiramisu import ConvertDynOptionDescription
+option_2 = IntOption(name="varname", doc="No change", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="newvar", doc="No change", default=Calculation(func.calc_val, Params((ParamDynOption(option_4, '1', optiondescription_3)))), properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="new", doc="new", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = IntOption(name="varname", doc="No change", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"normal"}))
+option_10 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "normal"}))
+optiondescription_9 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_8, notraisepropertyerror=True)))), children=[option_10], properties=frozenset({"normal"}))
+option_12 = StrOption(name="newvar", doc="No change", default=Calculation(func.calc_val, Params((ParamDynOption(option_10, '1', optiondescription_9)))), properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="new", doc="new", children=[option_12], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7, optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/20family_dynamic_number/xml/00-base.xml b/tests/dictionaries_old/20family_dynamic_number/xml/00-base.xml
new file mode 100644
index 000000000..158d63eef
--- /dev/null
+++ b/tests/dictionaries_old/20family_dynamic_number/xml/00-base.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ 1
+ 2
+
+
+
+
+ val
+
+
+
+
+
+
+
+
+ vardyn1
+ newvar
+
+
+
diff --git a/tests/dictionaries/20family_dynamic_number/yml/00-base.yml b/tests/dictionaries_old/20family_dynamic_number/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_dynamic_number/yml/00-base.yml
rename to tests/dictionaries_old/20family_dynamic_number/yml/00-base.yml
diff --git a/tests/dictionaries_old/20family_empty/00-base.xml b/tests/dictionaries_old/20family_empty/00-base.xml
deleted file mode 100644
index 2611894b3..000000000
--- a/tests/dictionaries_old/20family_empty/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
diff --git a/tests/dictionaries_old/20family_empty/result/rougail/00-base.yml b/tests/dictionaries_old/20family_empty/result/rougail/00-base.yml
new file mode 100644
index 000000000..167d71a55
--- /dev/null
+++ b/tests/dictionaries_old/20family_empty/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ mode: basic
+ default: non
+general2:
+ help: family
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_empty/tiramisu/base.py b/tests/dictionaries_old/20family_empty/tiramisu/base.py
index 65f3c4843..54776f32f 100644
--- a/tests/dictionaries_old/20family_empty/tiramisu/base.py
+++ b/tests/dictionaries_old/20family_empty/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_empty/tiramisu/multi.py b/tests/dictionaries_old/20family_empty/tiramisu/multi.py
new file mode 100644
index 000000000..3bc95c70e
--- /dev/null
+++ b/tests/dictionaries_old/20family_empty/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"basic"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5], properties=frozenset({"basic"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/20family_empty/xml/00-base.xml b/tests/dictionaries_old/20family_empty/xml/00-base.xml
new file mode 100644
index 000000000..5fbe1a4e1
--- /dev/null
+++ b/tests/dictionaries_old/20family_empty/xml/00-base.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+ non
+
+
+
+
+
diff --git a/tests/dictionaries/20family_empty/yml/00-base.yml b/tests/dictionaries_old/20family_empty/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_empty/yml/00-base.yml
rename to tests/dictionaries_old/20family_empty/yml/00-base.yml
diff --git a/tests/dictionaries_old/20family_hidden/00-base.xml b/tests/dictionaries_old/20family_hidden/00-base.xml
deleted file mode 100644
index ccf8e4dd4..000000000
--- a/tests/dictionaries_old/20family_hidden/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/20family_hidden/01-base.xml b/tests/dictionaries_old/20family_hidden/01-base.xml
deleted file mode 100644
index 8556985bb..000000000
--- a/tests/dictionaries_old/20family_hidden/01-base.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/20family_hidden/result/rougail/00-base.yml b/tests/dictionaries_old/20family_hidden/result/rougail/00-base.yml
new file mode 100644
index 000000000..765ba2c20
--- /dev/null
+++ b/tests/dictionaries_old/20family_hidden/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_hidden/result/rougail/01-base.yml b/tests/dictionaries_old/20family_hidden/result/rougail/01-base.yml
new file mode 100644
index 000000000..89f4ffc45
--- /dev/null
+++ b/tests/dictionaries_old/20family_hidden/result/rougail/01-base.yml
@@ -0,0 +1,4 @@
+general:
+ hidden: true
+ redefine: true
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_hidden/tiramisu/base.py b/tests/dictionaries_old/20family_hidden/tiramisu/base.py
index aaf5c22c4..01184d8cb 100644
--- a/tests/dictionaries_old/20family_hidden/tiramisu/base.py
+++ b/tests/dictionaries_old/20family_hidden/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"hidden", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_hidden/tiramisu/multi.py b/tests/dictionaries_old/20family_hidden/tiramisu/multi.py
new file mode 100644
index 000000000..c4d50a1d5
--- /dev/null
+++ b/tests/dictionaries_old/20family_hidden/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"hidden", "normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"hidden", "normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/20family_hidden/xml/00-base.xml b/tests/dictionaries_old/20family_hidden/xml/00-base.xml
new file mode 100644
index 000000000..1b623d241
--- /dev/null
+++ b/tests/dictionaries_old/20family_hidden/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/20family_hidden/xml/01-base.xml b/tests/dictionaries_old/20family_hidden/xml/01-base.xml
new file mode 100644
index 000000000..4267d6bfb
--- /dev/null
+++ b/tests/dictionaries_old/20family_hidden/xml/01-base.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/tests/dictionaries/20family_hidden/yml/00-base.yml b/tests/dictionaries_old/20family_hidden/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_hidden/yml/00-base.yml
rename to tests/dictionaries_old/20family_hidden/yml/00-base.yml
diff --git a/tests/dictionaries/20family_hidden/yml/01-base.yml b/tests/dictionaries_old/20family_hidden/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/20family_hidden/yml/01-base.yml
rename to tests/dictionaries_old/20family_hidden/yml/01-base.yml
diff --git a/tests/dictionaries_old/20family_mode/00-base.xml b/tests/dictionaries_old/20family_mode/00-base.xml
deleted file mode 100644
index adc550df4..000000000
--- a/tests/dictionaries_old/20family_mode/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/20family_mode/result/rougail/00-base.yml b/tests/dictionaries_old/20family_mode/result/rougail/00-base.yml
new file mode 100644
index 000000000..71f7adc02
--- /dev/null
+++ b/tests/dictionaries_old/20family_mode/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ mode: basic
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_mode/tiramisu/base.py b/tests/dictionaries_old/20family_mode/tiramisu/base.py
index 65f3c4843..54776f32f 100644
--- a/tests/dictionaries_old/20family_mode/tiramisu/base.py
+++ b/tests/dictionaries_old/20family_mode/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_mode/tiramisu/multi.py b/tests/dictionaries_old/20family_mode/tiramisu/multi.py
new file mode 100644
index 000000000..7b2130778
--- /dev/null
+++ b/tests/dictionaries_old/20family_mode/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"basic"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"basic"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/20family_mode/xml/00-base.xml b/tests/dictionaries_old/20family_mode/xml/00-base.xml
new file mode 100644
index 000000000..fd89ec644
--- /dev/null
+++ b/tests/dictionaries_old/20family_mode/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/20family_mode/yml/00-base.yml b/tests/dictionaries_old/20family_mode/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_mode/yml/00-base.yml
rename to tests/dictionaries_old/20family_mode/yml/00-base.yml
diff --git a/tests/dictionaries_old/20family_modeleadership/00-base.xml b/tests/dictionaries_old/20family_modeleadership/00-base.xml
deleted file mode 100644
index 43e729762..000000000
--- a/tests/dictionaries_old/20family_modeleadership/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/20family_modeleadership/makedict/after.json b/tests/dictionaries_old/20family_modeleadership/makedict/after.json
index dd62b9801..548ec3acc 100644
--- a/tests/dictionaries_old/20family_modeleadership/makedict/after.json
+++ b/tests/dictionaries_old/20family_modeleadership/makedict/after.json
@@ -6,13 +6,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/20family_modeleadership/makedict/before.json b/tests/dictionaries_old/20family_modeleadership/makedict/before.json
index dd62b9801..548ec3acc 100644
--- a/tests/dictionaries_old/20family_modeleadership/makedict/before.json
+++ b/tests/dictionaries_old/20family_modeleadership/makedict/before.json
@@ -6,13 +6,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower1": {
- "owner": [],
- "value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/20family_modeleadership/result/rougail/00-base.yml b/tests/dictionaries_old/20family_modeleadership/result/rougail/00-base.yml
new file mode 100644
index 000000000..0ea2c72aa
--- /dev/null
+++ b/tests/dictionaries_old/20family_modeleadership/result/rougail/00-base.yml
@@ -0,0 +1,20 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ follower2:
+ type: string
+ description: follower2
+ mode: basic
+version: '1.0'
diff --git a/tests/dictionaries_old/20family_modeleadership/tiramisu/base.py b/tests/dictionaries_old/20family_modeleadership/tiramisu/base.py
index 88f7a239d..e965f25d1 100644
--- a/tests/dictionaries_old/20family_modeleadership/tiramisu/base.py
+++ b/tests/dictionaries_old/20family_modeleadership/tiramisu/base.py
@@ -1,21 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="leader", doc="leader", multi=True)
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "notempty"}))
option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"basic"}))
-option_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"basic"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/20family_modeleadership/tiramisu/multi.py b/tests/dictionaries_old/20family_modeleadership/tiramisu/multi.py
new file mode 100644
index 000000000..3af970632
--- /dev/null
+++ b/tests/dictionaries_old/20family_modeleadership/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic"}))
+option_5 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"basic"}))
+optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_8 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic"}))
+option_11 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
+option_12 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"basic"}))
+optiondescription_9 = Leadership(name="leader", doc="leader", children=[option_10, option_11, option_12], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8, optiondescription_9], properties=frozenset({"basic"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"basic"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/20family_modeleadership/xml/00-base.xml b/tests/dictionaries_old/20family_modeleadership/xml/00-base.xml
new file mode 100644
index 000000000..1587f2577
--- /dev/null
+++ b/tests/dictionaries_old/20family_modeleadership/xml/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/20family_modeleadership/yml/00-base.yml b/tests/dictionaries_old/20family_modeleadership/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20family_modeleadership/yml/00-base.yml
rename to tests/dictionaries_old/20family_modeleadership/yml/00-base.yml
diff --git a/tests/dictionaries_old/20notemplating/00-base.xml b/tests/dictionaries_old/20notemplating/00-base.xml
deleted file mode 100644
index df71ebe27..000000000
--- a/tests/dictionaries_old/20notemplating/00-base.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- /etc/file
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/20notemplating/makedict/after.json b/tests/dictionaries_old/20notemplating/makedict/after.json
index 406d96f09..23e76deff 100644
--- a/tests/dictionaries_old/20notemplating/makedict/after.json
+++ b/tests/dictionaries_old/20notemplating/makedict/after.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/20notemplating/makedict/base.json b/tests/dictionaries_old/20notemplating/makedict/base.json
index a1e4c0dbc..556722f4e 100644
--- a/tests/dictionaries_old/20notemplating/makedict/base.json
+++ b/tests/dictionaries_old/20notemplating/makedict/base.json
@@ -1,7 +1,8 @@
{
"rougail.general.mode_conteneur_actif": "non",
- "services.test.files.file.name": "/etc/file",
- "services.test.files.file.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/etc/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/20notemplating/makedict/before.json b/tests/dictionaries_old/20notemplating/makedict/before.json
index 406d96f09..23e76deff 100644
--- a/tests/dictionaries_old/20notemplating/makedict/before.json
+++ b/tests/dictionaries_old/20notemplating/makedict/before.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": "non"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/20notemplating/result/etc/file b/tests/dictionaries_old/20notemplating/result/etc/file
deleted file mode 100644
index 5113d9aae..000000000
--- a/tests/dictionaries_old/20notemplating/result/etc/file
+++ /dev/null
@@ -1 +0,0 @@
-%%condition
diff --git a/tests/dictionaries_old/20notemplating/result/rougail/00-base.yml b/tests/dictionaries_old/20notemplating/result/rougail/00-base.yml
new file mode 100644
index 000000000..6522280e9
--- /dev/null
+++ b/tests/dictionaries_old/20notemplating/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/20notemplating/result/services/00-base.yml b/tests/dictionaries_old/20notemplating/result/services/00-base.yml
new file mode 100644
index 000000000..0b76d6d97
--- /dev/null
+++ b/tests/dictionaries_old/20notemplating/result/services/00-base.yml
@@ -0,0 +1,5 @@
+test.service:
+ files:
+ /etc/file:
+ engine: none
+version: '1.0'
diff --git a/tests/dictionaries_old/20notemplating/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/20notemplating/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 574c7b823..000000000
--- a/tests/dictionaries_old/20notemplating/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/file 0644 root root - /usr/local/lib/etc/file
-z /etc/file - - - - -
diff --git a/tests/dictionaries_old/20notemplating/tiramisu/base.py b/tests/dictionaries_old/20notemplating/tiramisu/base.py
index 8b60fe59f..c25039839 100644
--- a/tests/dictionaries_old/20notemplating/tiramisu/base.py
+++ b/tests/dictionaries_old/20notemplating/tiramisu/base.py
@@ -1,27 +1,40 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", 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])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9])
-option_7.impl_set_information('engine', "none")
-option_7.impl_set_information('source', "file")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7])
+option_9 = FilenameOption(name="source", doc="source", default="/etc/file")
option_10 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_10, option_11])
-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])
+optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10])
+optiondescription_7.impl_set_information('engine', "none")
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
+option_11 = BoolOption(name="activate", doc="activate", default=True)
+option_12 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_11, option_12])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/20notemplating/tiramisu/multi.py b/tests/dictionaries_old/20notemplating/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/20notemplating/tiramisu/multi.py
rename to tests/dictionaries_old/20notemplating/tiramisu/multi.py
diff --git a/tests/dictionaries/20notemplating/xml/00-base.xml b/tests/dictionaries_old/20notemplating/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/20notemplating/xml/00-base.xml
rename to tests/dictionaries_old/20notemplating/xml/00-base.xml
diff --git a/tests/dictionaries/20notemplating/yml/00-base.yml b/tests/dictionaries_old/20notemplating/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20notemplating/yml/00-base.yml
rename to tests/dictionaries_old/20notemplating/yml/00-base.yml
diff --git a/tests/dictionaries_old/20override/00-base.xml b/tests/dictionaries_old/20override/00-base.xml
deleted file mode 100644
index 8b81ae035..000000000
--- a/tests/dictionaries_old/20override/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/20override/makedict/after.json b/tests/dictionaries_old/20override/makedict/after.json
index a80dd37dd..b63e355a9 100644
--- a/tests/dictionaries_old/20override/makedict/after.json
+++ b/tests/dictionaries_old/20override/makedict/after.json
@@ -3,27 +3,27 @@
"owner": "default",
"value": "non"
},
- "services.test.overrides.test_service.activate": {
+ "services.test_service.overrides.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
},
- "services.test2.overrides.test2_service.activate": {
+ "services.test2_service.overrides.test2_service.activate": {
"owner": "default",
"value": true
},
- "services.test2.activate": {
+ "services.test2_service.activate": {
"owner": "default",
"value": true
},
- "services.test2.manage": {
+ "services.test2_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/20override/makedict/base.json b/tests/dictionaries_old/20override/makedict/base.json
index 2de81c42d..9a91257aa 100644
--- a/tests/dictionaries_old/20override/makedict/base.json
+++ b/tests/dictionaries_old/20override/makedict/base.json
@@ -1,9 +1,9 @@
{
"rougail.general.mode_conteneur_actif": "non",
- "services.test.overrides.test_service.activate": true,
- "services.test.activate": true,
- "services.test.manage": true,
- "services.test2.overrides.test2_service.activate": true,
- "services.test2.activate": true,
- "services.test2.manage": true
+ "services.test_service.overrides.test_service.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true,
+ "services.test2_service.overrides.test2_service.activate": true,
+ "services.test2_service.activate": true,
+ "services.test2_service.manage": true
}
diff --git a/tests/dictionaries_old/20override/makedict/before.json b/tests/dictionaries_old/20override/makedict/before.json
index a80dd37dd..b63e355a9 100644
--- a/tests/dictionaries_old/20override/makedict/before.json
+++ b/tests/dictionaries_old/20override/makedict/before.json
@@ -3,27 +3,27 @@
"owner": "default",
"value": "non"
},
- "services.test.overrides.test_service.activate": {
+ "services.test_service.overrides.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
},
- "services.test2.overrides.test2_service.activate": {
+ "services.test2_service.overrides.test2_service.activate": {
"owner": "default",
"value": true
},
- "services.test2.activate": {
+ "services.test2_service.activate": {
"owner": "default",
"value": true
},
- "services.test2.manage": {
+ "services.test2_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/20override/no_base b/tests/dictionaries_old/20override/no_base
similarity index 100%
rename from tests/dictionaries/20override/no_base
rename to tests/dictionaries_old/20override/no_base
diff --git a/tests/dictionaries_old/20override/result/rougail/00-base.yml b/tests/dictionaries_old/20override/result/rougail/00-base.yml
new file mode 100644
index 000000000..6522280e9
--- /dev/null
+++ b/tests/dictionaries_old/20override/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/20override/result/services/00-base.yml b/tests/dictionaries_old/20override/result/services/00-base.yml
new file mode 100644
index 000000000..b22418e0b
--- /dev/null
+++ b/tests/dictionaries_old/20override/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ override: null
+test2.service:
+ override:
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/20override/result/systemd/system/test.service.d/rougail.conf b/tests/dictionaries_old/20override/result/systemd/system/test.service.d/rougail.conf
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries_old/20override/result/systemd/system/test.service.d/rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries_old/20override/result/systemd/system/test2.service.d/rougail.conf b/tests/dictionaries_old/20override/result/systemd/system/test2.service.d/rougail.conf
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries_old/20override/result/systemd/system/test2.service.d/rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries_old/20override/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/20override/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/20override/tiramisu/base.py b/tests/dictionaries_old/20override/tiramisu/base.py
index e632163e6..69f8cc7ff 100644
--- a/tests/dictionaries_old/20override/tiramisu/base.py
+++ b/tests/dictionaries_old/20override/tiramisu/base.py
@@ -1,35 +1,38 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", 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 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="test_service", doc="test.service", children=[option_8])
-option_7.impl_set_information('name', "test")
-option_7.impl_set_information('source', "test.service")
-option_6 = OptionDescription(name="overrides", doc="overrides", children=[option_7])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "service")
option_9 = BoolOption(name="activate", doc="activate", default=True)
option_10 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_9, option_10])
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = OptionDescription(name="test2_service", doc="test2.service", children=[option_14])
-option_13.impl_set_information('engine', "jinja")
-option_13.impl_set_information('name', "test2")
-option_13.impl_set_information('source', "test2.service")
-option_12 = OptionDescription(name="overrides", doc="overrides", children=[option_13])
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_16 = BoolOption(name="manage", doc="manage", default=True)
-option_11 = OptionDescription(name="test2", doc="test2", children=[option_12, option_15, option_16])
-option_4 = OptionDescription(name="services", doc="services", children=[option_5, option_11], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
+optiondescription_8 = OptionDescription(name="test2_service", doc="test2_service", children=[option_9, option_10])
+optiondescription_8.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5, optiondescription_8], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/20override/tiramisu/multi.py b/tests/dictionaries_old/20override/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/20override/tiramisu/multi.py
rename to tests/dictionaries_old/20override/tiramisu/multi.py
diff --git a/tests/dictionaries/20override/xml/00-base.xml b/tests/dictionaries_old/20override/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/20override/xml/00-base.xml
rename to tests/dictionaries_old/20override/xml/00-base.xml
diff --git a/tests/dictionaries/20override/yml/00-base.yml b/tests/dictionaries_old/20override/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20override/yml/00-base.yml
rename to tests/dictionaries_old/20override/yml/00-base.yml
diff --git a/tests/dictionaries_old/20override_no_templating/00-base.xml b/tests/dictionaries_old/20override_no_templating/00-base.xml
deleted file mode 100644
index 8348d11a7..000000000
--- a/tests/dictionaries_old/20override_no_templating/00-base.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/20override_no_templating/makedict/after.json b/tests/dictionaries_old/20override_no_templating/makedict/after.json
index b76fd3d18..d916a90f3 100644
--- a/tests/dictionaries_old/20override_no_templating/makedict/after.json
+++ b/tests/dictionaries_old/20override_no_templating/makedict/after.json
@@ -3,15 +3,15 @@
"owner": "default",
"value": "non"
},
- "services.test.overrides.test_service.activate": {
+ "services.test_service.overrides.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/20override_no_templating/makedict/base.json b/tests/dictionaries_old/20override_no_templating/makedict/base.json
index 9dc9b73a9..87994e7b0 100644
--- a/tests/dictionaries_old/20override_no_templating/makedict/base.json
+++ b/tests/dictionaries_old/20override_no_templating/makedict/base.json
@@ -1,6 +1,6 @@
{
"rougail.general.mode_conteneur_actif": "non",
- "services.test.overrides.test_service.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.overrides.test_service.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/20override_no_templating/makedict/before.json b/tests/dictionaries_old/20override_no_templating/makedict/before.json
index b76fd3d18..d916a90f3 100644
--- a/tests/dictionaries_old/20override_no_templating/makedict/before.json
+++ b/tests/dictionaries_old/20override_no_templating/makedict/before.json
@@ -3,15 +3,15 @@
"owner": "default",
"value": "non"
},
- "services.test.overrides.test_service.activate": {
+ "services.test_service.overrides.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/20override_no_templating/no_base b/tests/dictionaries_old/20override_no_templating/no_base
similarity index 100%
rename from tests/dictionaries/20override_no_templating/no_base
rename to tests/dictionaries_old/20override_no_templating/no_base
diff --git a/tests/dictionaries_old/20override_no_templating/result/rougail/00-base.yml b/tests/dictionaries_old/20override_no_templating/result/rougail/00-base.yml
new file mode 100644
index 000000000..6522280e9
--- /dev/null
+++ b/tests/dictionaries_old/20override_no_templating/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/20override_no_templating/result/services/00-base.yml b/tests/dictionaries_old/20override_no_templating/result/services/00-base.yml
new file mode 100644
index 000000000..d55f83ddb
--- /dev/null
+++ b/tests/dictionaries_old/20override_no_templating/result/services/00-base.yml
@@ -0,0 +1,4 @@
+test.service:
+ override:
+ engine: none
+version: '1.0'
diff --git a/tests/dictionaries_old/20override_no_templating/result/systemd/system/test.service.d/rougail.conf b/tests/dictionaries_old/20override_no_templating/result/systemd/system/test.service.d/rougail.conf
deleted file mode 100644
index a29cfeaf3..000000000
--- a/tests/dictionaries_old/20override_no_templating/result/systemd/system/test.service.d/rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-%%mode_conteneur_actif
diff --git a/tests/dictionaries_old/20override_no_templating/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/20override_no_templating/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/20override_no_templating/tiramisu/base.py b/tests/dictionaries_old/20override_no_templating/tiramisu/base.py
index 4cce96cd6..e3aafb244 100644
--- a/tests/dictionaries_old/20override_no_templating/tiramisu/base.py
+++ b/tests/dictionaries_old/20override_no_templating/tiramisu/base.py
@@ -1,27 +1,34 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", 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 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="test_service", doc="test.service", children=[option_8])
-option_7.impl_set_information('engine', "none")
-option_7.impl_set_information('name', "test")
-option_7.impl_set_information('source', "test.service")
-option_6 = OptionDescription(name="overrides", doc="overrides", children=[option_7])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_9, option_10])
-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])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/20override_no_templating/tiramisu/multi.py b/tests/dictionaries_old/20override_no_templating/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/20override_no_templating/tiramisu/multi.py
rename to tests/dictionaries_old/20override_no_templating/tiramisu/multi.py
diff --git a/tests/dictionaries/20override_no_templating/xml/00-base.xml b/tests/dictionaries_old/20override_no_templating/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/20override_no_templating/xml/00-base.xml
rename to tests/dictionaries_old/20override_no_templating/xml/00-base.xml
diff --git a/tests/dictionaries/20override_no_templating/yml/00-base.yml b/tests/dictionaries_old/20override_no_templating/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20override_no_templating/yml/00-base.yml
rename to tests/dictionaries_old/20override_no_templating/yml/00-base.yml
diff --git a/tests/dictionaries_old/20override_source/00-base.xml b/tests/dictionaries_old/20override_source/00-base.xml
deleted file mode 100644
index acf3748b8..000000000
--- a/tests/dictionaries_old/20override_source/00-base.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/20override_source/makedict/after.json b/tests/dictionaries_old/20override_source/makedict/after.json
index 60992c7f9..d31908827 100644
--- a/tests/dictionaries_old/20override_source/makedict/after.json
+++ b/tests/dictionaries_old/20override_source/makedict/after.json
@@ -3,15 +3,15 @@
"owner": "default",
"value": "non"
},
- "services.test.overrides.test2_service.activate": {
+ "services.test_service.overrides.test2_service.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/20override_source/makedict/base.json b/tests/dictionaries_old/20override_source/makedict/base.json
index 3c86a824b..e24f567b8 100644
--- a/tests/dictionaries_old/20override_source/makedict/base.json
+++ b/tests/dictionaries_old/20override_source/makedict/base.json
@@ -1,6 +1,6 @@
{
"rougail.general.mode_conteneur_actif": "non",
- "services.test.overrides.test2_service.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.overrides.test2_service.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/20override_source/makedict/before.json b/tests/dictionaries_old/20override_source/makedict/before.json
index 60992c7f9..d31908827 100644
--- a/tests/dictionaries_old/20override_source/makedict/before.json
+++ b/tests/dictionaries_old/20override_source/makedict/before.json
@@ -3,15 +3,15 @@
"owner": "default",
"value": "non"
},
- "services.test.overrides.test2_service.activate": {
+ "services.test_service.overrides.test2_service.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/20override_source/no_base b/tests/dictionaries_old/20override_source/no_base
similarity index 100%
rename from tests/dictionaries/20override_source/no_base
rename to tests/dictionaries_old/20override_source/no_base
diff --git a/tests/dictionaries_old/20override_source/result/rougail/00-base.yml b/tests/dictionaries_old/20override_source/result/rougail/00-base.yml
new file mode 100644
index 000000000..6522280e9
--- /dev/null
+++ b/tests/dictionaries_old/20override_source/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/20override_source/result/services/00-base.yml b/tests/dictionaries_old/20override_source/result/services/00-base.yml
new file mode 100644
index 000000000..b199c5321
--- /dev/null
+++ b/tests/dictionaries_old/20override_source/result/services/00-base.yml
@@ -0,0 +1,4 @@
+test.service:
+ override:
+ source: test2.service
+version: '1.0'
diff --git a/tests/dictionaries_old/20override_source/result/systemd/system/test.service.d/rougail.conf b/tests/dictionaries_old/20override_source/result/systemd/system/test.service.d/rougail.conf
deleted file mode 100644
index d907505b5..000000000
--- a/tests/dictionaries_old/20override_source/result/systemd/system/test.service.d/rougail.conf
+++ /dev/null
@@ -1 +0,0 @@
-non
diff --git a/tests/dictionaries_old/20override_source/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/20override_source/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/20override_source/tiramisu/base.py b/tests/dictionaries_old/20override_source/tiramisu/base.py
index c2dc8f2d3..e3aafb244 100644
--- a/tests/dictionaries_old/20override_source/tiramisu/base.py
+++ b/tests/dictionaries_old/20override_source/tiramisu/base.py
@@ -1,26 +1,34 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", 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 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="test2_service", doc="test2.service", children=[option_8])
-option_7.impl_set_information('name', "test")
-option_7.impl_set_information('source', "test2.service")
-option_6 = OptionDescription(name="overrides", doc="overrides", children=[option_7])
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_9, option_10])
-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])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/20override_source/tiramisu/multi.py b/tests/dictionaries_old/20override_source/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/20override_source/tiramisu/multi.py
rename to tests/dictionaries_old/20override_source/tiramisu/multi.py
diff --git a/tests/dictionaries/20override_source/xml/00-base.xml b/tests/dictionaries_old/20override_source/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/20override_source/xml/00-base.xml
rename to tests/dictionaries_old/20override_source/xml/00-base.xml
diff --git a/tests/dictionaries/20override_source/yml/00-base.yml b/tests/dictionaries_old/20override_source/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/20override_source/yml/00-base.yml
rename to tests/dictionaries_old/20override_source/yml/00-base.yml
diff --git a/tests/dictionaries_old/21family_empty/00-base.xml b/tests/dictionaries_old/21family_empty/00-base.xml
deleted file mode 100644
index b628e39b7..000000000
--- a/tests/dictionaries_old/21family_empty/00-base.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/21family_empty/result/rougail/00-base.yml b/tests/dictionaries_old/21family_empty/result/rougail/00-base.yml
new file mode 100644
index 000000000..cc32e34b9
--- /dev/null
+++ b/tests/dictionaries_old/21family_empty/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/21family_empty/tiramisu/base.py b/tests/dictionaries_old/21family_empty/tiramisu/base.py
index 02d0d601e..8d2f0a697 100644
--- a/tests/dictionaries_old/21family_empty/tiramisu/base.py
+++ b/tests/dictionaries_old/21family_empty/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", 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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/21family_empty/tiramisu/multi.py b/tests/dictionaries_old/21family_empty/tiramisu/multi.py
new file mode 100644
index 000000000..d96ffc5a9
--- /dev/null
+++ b/tests/dictionaries_old/21family_empty/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/21family_empty/xml/00-base.xml b/tests/dictionaries_old/21family_empty/xml/00-base.xml
new file mode 100644
index 000000000..49813e8f7
--- /dev/null
+++ b/tests/dictionaries_old/21family_empty/xml/00-base.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
diff --git a/tests/dictionaries/21family_empty/yml/00-base.yml b/tests/dictionaries_old/21family_empty/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/21family_empty/yml/00-base.yml
rename to tests/dictionaries_old/21family_empty/yml/00-base.yml
diff --git a/tests/dictionaries/22provider_dynamic/__init__.py b/tests/dictionaries_old/21family_empty_sub/__init__.py
similarity index 100%
rename from tests/dictionaries/22provider_dynamic/__init__.py
rename to tests/dictionaries_old/21family_empty_sub/__init__.py
diff --git a/tests/dictionaries/00load_comment/makedict/after.json b/tests/dictionaries_old/21family_empty_sub/makedict/after.json
similarity index 100%
rename from tests/dictionaries/00load_comment/makedict/after.json
rename to tests/dictionaries_old/21family_empty_sub/makedict/after.json
diff --git a/tests/dictionaries/00load_comment/makedict/base.json b/tests/dictionaries_old/21family_empty_sub/makedict/base.json
similarity index 100%
rename from tests/dictionaries/00load_comment/makedict/base.json
rename to tests/dictionaries_old/21family_empty_sub/makedict/base.json
diff --git a/tests/dictionaries/00load_comment/makedict/before.json b/tests/dictionaries_old/21family_empty_sub/makedict/before.json
similarity index 100%
rename from tests/dictionaries/00load_comment/makedict/before.json
rename to tests/dictionaries_old/21family_empty_sub/makedict/before.json
diff --git a/tests/dictionaries_old/21family_empty_sub/result/rougail/00-base.yml b/tests/dictionaries_old/21family_empty_sub/result/rougail/00-base.yml
new file mode 100644
index 000000000..60b2b848f
--- /dev/null
+++ b/tests/dictionaries_old/21family_empty_sub/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+general1:
+ general2: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/21family_empty_sub/tiramisu/base.py b/tests/dictionaries_old/21family_empty_sub/tiramisu/base.py
new file mode 100644
index 000000000..8d2f0a697
--- /dev/null
+++ b/tests/dictionaries_old/21family_empty_sub/tiramisu/base.py
@@ -0,0 +1,29 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/21family_empty_sub/tiramisu/multi.py b/tests/dictionaries_old/21family_empty_sub/tiramisu/multi.py
new file mode 100644
index 000000000..e850ec281
--- /dev/null
+++ b/tests/dictionaries_old/21family_empty_sub/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/21family_empty_sub/xml/00-base.xml b/tests/dictionaries_old/21family_empty_sub/xml/00-base.xml
new file mode 100644
index 000000000..84680f51c
--- /dev/null
+++ b/tests/dictionaries_old/21family_empty_sub/xml/00-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ non
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/21family_empty_sub/yml/00-base.yml b/tests/dictionaries_old/21family_empty_sub/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/21family_empty_sub/yml/00-base.yml
rename to tests/dictionaries_old/21family_empty_sub/yml/00-base.yml
diff --git a/tests/dictionaries/22provider_dynamic_2/__init__.py b/tests/dictionaries_old/22provider_dynamic/__init__.py
similarity index 100%
rename from tests/dictionaries/22provider_dynamic_2/__init__.py
rename to tests/dictionaries_old/22provider_dynamic/__init__.py
diff --git a/tests/dictionaries/22provider_dynamic/makedict/after.json b/tests/dictionaries_old/22provider_dynamic/makedict/after.json
similarity index 100%
rename from tests/dictionaries/22provider_dynamic/makedict/after.json
rename to tests/dictionaries_old/22provider_dynamic/makedict/after.json
diff --git a/tests/dictionaries/22provider_dynamic/makedict/base.json b/tests/dictionaries_old/22provider_dynamic/makedict/base.json
similarity index 100%
rename from tests/dictionaries/22provider_dynamic/makedict/base.json
rename to tests/dictionaries_old/22provider_dynamic/makedict/base.json
diff --git a/tests/dictionaries/22provider_dynamic/makedict/before.json b/tests/dictionaries_old/22provider_dynamic/makedict/before.json
similarity index 100%
rename from tests/dictionaries/22provider_dynamic/makedict/before.json
rename to tests/dictionaries_old/22provider_dynamic/makedict/before.json
diff --git a/tests/dictionaries_old/22provider_dynamic/result/rougail/00-base.yml b/tests/dictionaries_old/22provider_dynamic/result/rougail/00-base.yml
new file mode 100644
index 000000000..54383c0d4
--- /dev/null
+++ b/tests/dictionaries_old/22provider_dynamic/result/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+dyn:
+ type: dynamic
+ variable: rougail.general.varname
+ vardyn:
+ type: string
+ description: No change
+ provider: dyn
+version: '1.0'
diff --git a/tests/dictionaries_old/22provider_dynamic/tiramisu/base.py b/tests/dictionaries_old/22provider_dynamic/tiramisu/base.py
new file mode 100644
index 000000000..9c1e2d0b5
--- /dev/null
+++ b/tests/dictionaries_old/22provider_dynamic/tiramisu/base.py
@@ -0,0 +1,31 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/22provider_dynamic/tiramisu/multi.py b/tests/dictionaries_old/22provider_dynamic/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/22provider_dynamic/tiramisu/multi.py
rename to tests/dictionaries_old/22provider_dynamic/tiramisu/multi.py
diff --git a/tests/dictionaries/22provider_dynamic/xml/00-base.xml b/tests/dictionaries_old/22provider_dynamic/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/22provider_dynamic/xml/00-base.xml
rename to tests/dictionaries_old/22provider_dynamic/xml/00-base.xml
diff --git a/tests/dictionaries/22provider_dynamic/yml/00-base.yml b/tests/dictionaries_old/22provider_dynamic/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/22provider_dynamic/yml/00-base.yml
rename to tests/dictionaries_old/22provider_dynamic/yml/00-base.yml
diff --git a/tests/dictionaries/40condition_fallback/__init__.py b/tests/dictionaries_old/22provider_dynamic_2/__init__.py
similarity index 100%
rename from tests/dictionaries/40condition_fallback/__init__.py
rename to tests/dictionaries_old/22provider_dynamic_2/__init__.py
diff --git a/tests/dictionaries/22provider_dynamic_2/makedict/after.json b/tests/dictionaries_old/22provider_dynamic_2/makedict/after.json
similarity index 100%
rename from tests/dictionaries/22provider_dynamic_2/makedict/after.json
rename to tests/dictionaries_old/22provider_dynamic_2/makedict/after.json
diff --git a/tests/dictionaries/22provider_dynamic_2/makedict/base.json b/tests/dictionaries_old/22provider_dynamic_2/makedict/base.json
similarity index 100%
rename from tests/dictionaries/22provider_dynamic_2/makedict/base.json
rename to tests/dictionaries_old/22provider_dynamic_2/makedict/base.json
diff --git a/tests/dictionaries/22provider_dynamic_2/makedict/before.json b/tests/dictionaries_old/22provider_dynamic_2/makedict/before.json
similarity index 100%
rename from tests/dictionaries/22provider_dynamic_2/makedict/before.json
rename to tests/dictionaries_old/22provider_dynamic_2/makedict/before.json
diff --git a/tests/dictionaries_old/22provider_dynamic_2/result/rougail/00-base.yml b/tests/dictionaries_old/22provider_dynamic_2/result/rougail/00-base.yml
new file mode 100644
index 000000000..05233675f
--- /dev/null
+++ b/tests/dictionaries_old/22provider_dynamic_2/result/rougail/00-base.yml
@@ -0,0 +1,16 @@
+varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - val1
+ - val2
+general:
+ dyn:
+ type: dynamic
+ variable: rougail.varname
+ vardyn:
+ type: string
+ description: No change
+ provider: dyn
+version: '1.0'
diff --git a/tests/dictionaries_old/22provider_dynamic_2/tiramisu/base.py b/tests/dictionaries_old/22provider_dynamic_2/tiramisu/base.py
new file mode 100644
index 000000000..1a46d15d4
--- /dev/null
+++ b/tests/dictionaries_old/22provider_dynamic_2/tiramisu/base.py
@@ -0,0 +1,31 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="varname", doc="No change", multi=True, default=['val1', 'val2'], default_multi="val1", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"normal"}))
+optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func.calc_value, Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/22provider_dynamic_2/tiramisu/multi.py b/tests/dictionaries_old/22provider_dynamic_2/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/22provider_dynamic_2/tiramisu/multi.py
rename to tests/dictionaries_old/22provider_dynamic_2/tiramisu/multi.py
diff --git a/tests/dictionaries/22provider_dynamic_2/xml/00-base.xml b/tests/dictionaries_old/22provider_dynamic_2/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/22provider_dynamic_2/xml/00-base.xml
rename to tests/dictionaries_old/22provider_dynamic_2/xml/00-base.xml
diff --git a/tests/dictionaries/22provider_dynamic_2/yml/00-base.yml b/tests/dictionaries_old/22provider_dynamic_2/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/22provider_dynamic_2/yml/00-base.yml
rename to tests/dictionaries_old/22provider_dynamic_2/yml/00-base.yml
diff --git a/tests/dictionaries_old/30mandatory_withoutvalue/00-base.xml b/tests/dictionaries_old/30mandatory_withoutvalue/00-base.xml
deleted file mode 100644
index dd8cc45f6..000000000
--- a/tests/dictionaries_old/30mandatory_withoutvalue/00-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/30mandatory_withoutvalue/result/rougail/00-base.yml b/tests/dictionaries_old/30mandatory_withoutvalue/result/rougail/00-base.yml
new file mode 100644
index 000000000..3390ba5c4
--- /dev/null
+++ b/tests/dictionaries_old/30mandatory_withoutvalue/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries_old/30mandatory_withoutvalue/tiramisu/base.py b/tests/dictionaries_old/30mandatory_withoutvalue/tiramisu/base.py
index 616276472..833b5716b 100644
--- a/tests/dictionaries_old/30mandatory_withoutvalue/tiramisu/base.py
+++ b/tests/dictionaries_old/30mandatory_withoutvalue/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"basic", "mandatory"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/30mandatory_withoutvalue/tiramisu/multi.py b/tests/dictionaries_old/30mandatory_withoutvalue/tiramisu/multi.py
new file mode 100644
index 000000000..129b3ee57
--- /dev/null
+++ b/tests/dictionaries_old/30mandatory_withoutvalue/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"basic", "mandatory"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"basic"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"basic", "mandatory"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"basic"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/30mandatory_withoutvalue/xml/00-base.xml b/tests/dictionaries_old/30mandatory_withoutvalue/xml/00-base.xml
new file mode 100644
index 000000000..5b12cded9
--- /dev/null
+++ b/tests/dictionaries_old/30mandatory_withoutvalue/xml/00-base.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/30mandatory_withoutvalue/yml/00-base.yml b/tests/dictionaries_old/30mandatory_withoutvalue/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/30mandatory_withoutvalue/yml/00-base.yml
rename to tests/dictionaries_old/30mandatory_withoutvalue/yml/00-base.yml
diff --git a/tests/dictionaries_old/30mandatory_withoutvaluecalc/00-base.xml b/tests/dictionaries_old/30mandatory_withoutvaluecalc/00-base.xml
deleted file mode 100644
index 74ac4379f..000000000
--- a/tests/dictionaries_old/30mandatory_withoutvaluecalc/00-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
- value
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/30mandatory_withoutvaluecalc/result/rougail/00-base.yml b/tests/dictionaries_old/30mandatory_withoutvaluecalc/result/rougail/00-base.yml
new file mode 100644
index 000000000..665ca03fb
--- /dev/null
+++ b/tests/dictionaries_old/30mandatory_withoutvaluecalc/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "value" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/30mandatory_withoutvaluecalc/tiramisu/base.py b/tests/dictionaries_old/30mandatory_withoutvaluecalc/tiramisu/base.py
index 2834df77e..c61491e8a 100644
--- a/tests/dictionaries_old/30mandatory_withoutvaluecalc/tiramisu/base.py
+++ b/tests/dictionaries_old/30mandatory_withoutvaluecalc/tiramisu/base.py
@@ -1,17 +1,59 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("value")))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/30mandatory_withoutvaluecalc/tiramisu/multi.py b/tests/dictionaries_old/30mandatory_withoutvaluecalc/tiramisu/multi.py
new file mode 100644
index 000000000..3e3805be4
--- /dev/null
+++ b/tests/dictionaries_old/30mandatory_withoutvaluecalc/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("value")))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("value")))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/30mandatory_withoutvaluecalc/xml/00-base.xml b/tests/dictionaries_old/30mandatory_withoutvaluecalc/xml/00-base.xml
new file mode 100644
index 000000000..824ee0f93
--- /dev/null
+++ b/tests/dictionaries_old/30mandatory_withoutvaluecalc/xml/00-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+ value
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/30mandatory_withoutvaluecalc/yml/00-base.yml b/tests/dictionaries_old/30mandatory_withoutvaluecalc/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/30mandatory_withoutvaluecalc/yml/00-base.yml
rename to tests/dictionaries_old/30mandatory_withoutvaluecalc/yml/00-base.yml
diff --git a/tests/dictionaries_old/30mandatory_withvalue/00-base.xml b/tests/dictionaries_old/30mandatory_withvalue/00-base.xml
deleted file mode 100644
index cfbe7ed05..000000000
--- a/tests/dictionaries_old/30mandatory_withvalue/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- value
-
-
-
-
diff --git a/tests/dictionaries_old/30mandatory_withvalue/result/rougail/00-base.yml b/tests/dictionaries_old/30mandatory_withvalue/result/rougail/00-base.yml
new file mode 100644
index 000000000..5b7b86f1f
--- /dev/null
+++ b/tests/dictionaries_old/30mandatory_withvalue/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: value
+version: '1.0'
diff --git a/tests/dictionaries_old/30mandatory_withvalue/tiramisu/base.py b/tests/dictionaries_old/30mandatory_withvalue/tiramisu/base.py
index db8702545..a8e5107e6 100644
--- a/tests/dictionaries_old/30mandatory_withvalue/tiramisu/base.py
+++ b/tests/dictionaries_old/30mandatory_withvalue/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="value", 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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/30mandatory_withvalue/tiramisu/multi.py b/tests/dictionaries_old/30mandatory_withvalue/tiramisu/multi.py
new file mode 100644
index 000000000..8bcbe5e84
--- /dev/null
+++ b/tests/dictionaries_old/30mandatory_withvalue/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="value", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="value", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/30mandatory_withvalue/xml/00-base.xml b/tests/dictionaries_old/30mandatory_withvalue/xml/00-base.xml
new file mode 100644
index 000000000..9c5e2427b
--- /dev/null
+++ b/tests/dictionaries_old/30mandatory_withvalue/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ value
+
+
+
+
diff --git a/tests/dictionaries/30mandatory_withvalue/yml/00-base.yml b/tests/dictionaries_old/30mandatory_withvalue/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/30mandatory_withvalue/yml/00-base.yml
rename to tests/dictionaries_old/30mandatory_withvalue/yml/00-base.yml
diff --git a/tests/dictionaries_old/30mandatory_withvaluecalc/00-base.xml b/tests/dictionaries_old/30mandatory_withvaluecalc/00-base.xml
deleted file mode 100644
index 899ce4dd1..000000000
--- a/tests/dictionaries_old/30mandatory_withvaluecalc/00-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
- value
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/30mandatory_withvaluecalc/result/rougail/00-base.yml b/tests/dictionaries_old/30mandatory_withvaluecalc/result/rougail/00-base.yml
new file mode 100644
index 000000000..c40c13623
--- /dev/null
+++ b/tests/dictionaries_old/30mandatory_withvaluecalc/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "value" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/30mandatory_withvaluecalc/tiramisu/base.py b/tests/dictionaries_old/30mandatory_withvaluecalc/tiramisu/base.py
index 0396c195b..81225b67f 100644
--- a/tests/dictionaries_old/30mandatory_withvaluecalc/tiramisu/base.py
+++ b/tests/dictionaries_old/30mandatory_withvaluecalc/tiramisu/base.py
@@ -1,17 +1,59 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("value")))), properties=frozenset({"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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/30mandatory_withvaluecalc/tiramisu/multi.py b/tests/dictionaries_old/30mandatory_withvaluecalc/tiramisu/multi.py
new file mode 100644
index 000000000..6a0e5331d
--- /dev/null
+++ b/tests/dictionaries_old/30mandatory_withvaluecalc/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("value")))), properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.calc_val, Params((ParamValue("value")))), properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/30mandatory_withvaluecalc/xml/00-base.xml b/tests/dictionaries_old/30mandatory_withvaluecalc/xml/00-base.xml
new file mode 100644
index 000000000..4480774b0
--- /dev/null
+++ b/tests/dictionaries_old/30mandatory_withvaluecalc/xml/00-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+ value
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/30mandatory_withvaluecalc/yml/00-base.yml b/tests/dictionaries_old/30mandatory_withvaluecalc/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/30mandatory_withvaluecalc/yml/00-base.yml
rename to tests/dictionaries_old/30mandatory_withvaluecalc/yml/00-base.yml
diff --git a/tests/dictionaries_old/40condition_base/00-base.xml b/tests/dictionaries_old/40condition_base/00-base.xml
deleted file mode 100644
index c4aa968ac..000000000
--- a/tests/dictionaries_old/40condition_base/00-base.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif1
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/40condition_base/result/rougail/00-base.yml b/tests/dictionaries_old/40condition_base/result/rougail/00-base.yml
new file mode 100644
index 000000000..7bb8fc4e3
--- /dev/null
+++ b/tests/dictionaries_old/40condition_base/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/40condition_base/tiramisu/base.py b/tests/dictionaries_old/40condition_base/tiramisu/base.py
index e06f75254..3f3031c65 100644
--- a/tests/dictionaries_old/40condition_base/tiramisu/base.py
+++ b/tests/dictionaries_old/40condition_base/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/40condition_base/tiramisu/multi.py b/tests/dictionaries_old/40condition_base/tiramisu/multi.py
new file mode 100644
index 000000000..e8a67e8bf
--- /dev/null
+++ b/tests/dictionaries_old/40condition_base/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_10 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7, option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/40condition_base/xml/00-base.xml b/tests/dictionaries_old/40condition_base/xml/00-base.xml
new file mode 100644
index 000000000..5116ca99a
--- /dev/null
+++ b/tests/dictionaries_old/40condition_base/xml/00-base.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif1
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/40condition_base/yml/00-base.yml b/tests/dictionaries_old/40condition_base/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40condition_base/yml/00-base.yml
rename to tests/dictionaries_old/40condition_base/yml/00-base.yml
diff --git a/tests/dictionaries_old/40condition_base_add/00-base.xml b/tests/dictionaries_old/40condition_base_add/00-base.xml
deleted file mode 100644
index c4aa968ac..000000000
--- a/tests/dictionaries_old/40condition_base_add/00-base.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif1
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/40condition_base_add/01-base.xml b/tests/dictionaries_old/40condition_base_add/01-base.xml
deleted file mode 100644
index cca063ed2..000000000
--- a/tests/dictionaries_old/40condition_base_add/01-base.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
- oui
- mode_conteneur_actif1
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/40condition_base_add/result/rougail/00-base.yml b/tests/dictionaries_old/40condition_base_add/result/rougail/00-base.yml
new file mode 100644
index 000000000..7bb8fc4e3
--- /dev/null
+++ b/tests/dictionaries_old/40condition_base_add/result/rougail/00-base.yml
@@ -0,0 +1,26 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/40condition_base_add/result/rougail/01-base.yml b/tests/dictionaries_old/40condition_base_add/result/rougail/01-base.yml
new file mode 100644
index 000000000..d80321891
--- /dev/null
+++ b/tests/dictionaries_old/40condition_base_add/result/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ condition:
+ redefine: true
+ hidden: false
+ disabled: false
+ mandatory: false
+version: '1.0'
diff --git a/tests/dictionaries_old/40condition_base_add/tiramisu/base.py b/tests/dictionaries_old/40condition_base_add/tiramisu/base.py
index e06f75254..eb60798ee 100644
--- a/tests/dictionaries_old/40condition_base_add/tiramisu/base.py
+++ b/tests/dictionaries_old/40condition_base_add/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/40condition_base_add/tiramisu/multi.py b/tests/dictionaries_old/40condition_base_add/tiramisu/multi.py
new file mode 100644
index 000000000..e8a67e8bf
--- /dev/null
+++ b/tests/dictionaries_old/40condition_base_add/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_10 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_8, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7, option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/40condition_base_add/xml/00-base.xml b/tests/dictionaries_old/40condition_base_add/xml/00-base.xml
new file mode 100644
index 000000000..5116ca99a
--- /dev/null
+++ b/tests/dictionaries_old/40condition_base_add/xml/00-base.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif1
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries_old/40condition_base_add/xml/01-base.xml b/tests/dictionaries_old/40condition_base_add/xml/01-base.xml
new file mode 100644
index 000000000..c7b3c65ec
--- /dev/null
+++ b/tests/dictionaries_old/40condition_base_add/xml/01-base.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+ oui
+ mode_conteneur_actif1
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/40condition_base_add/yml/00-base.yml b/tests/dictionaries_old/40condition_base_add/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40condition_base_add/yml/00-base.yml
rename to tests/dictionaries_old/40condition_base_add/yml/00-base.yml
diff --git a/tests/dictionaries/40condition_base_add/yml/01-base.yml b/tests/dictionaries_old/40condition_base_add/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/40condition_base_add/yml/01-base.yml
rename to tests/dictionaries_old/40condition_base_add/yml/01-base.yml
diff --git a/tests/dictionaries_old/40condition_fallback/00-base.xml b/tests/dictionaries_old/40condition_fallback/00-base.xml
deleted file mode 100644
index 4b3dcbb55..000000000
--- a/tests/dictionaries_old/40condition_fallback/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif1
- mode_conteneur_actif2
- disabled_family
-
-
-
diff --git a/tests/dictionaries_old/40condition_fallback/result/rougail/00-base.yml b/tests/dictionaries_old/40condition_fallback/result/rougail/00-base.yml
new file mode 100644
index 000000000..7bd55dd8d
--- /dev/null
+++ b/tests/dictionaries_old/40condition_fallback/result/rougail/00-base.yml
@@ -0,0 +1,28 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if __condition == "oui" %}true{% else %}false{% endif %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if __condition == "oui" %}true{% else %}false{% endif %}'
+disabled_family:
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if __condition == "oui" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/40condition_fallback/tiramisu/base.py b/tests/dictionaries_old/40condition_fallback/tiramisu/base.py
index a9a0a43e7..b5ada7613 100644
--- a/tests/dictionaries_old/40condition_fallback/tiramisu/base.py
+++ b/tests/dictionaries_old/40condition_fallback/tiramisu/base.py
@@ -1,21 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
option_7 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_6 = OptionDescription(name="disabled_family", doc="disabled_family", children=[option_7], properties=frozenset({"disabled", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_6 = OptionDescription(name="disabled_family", doc="disabled_family", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40condition_fallback/tiramisu/multi.py b/tests/dictionaries_old/40condition_fallback/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/40condition_fallback/tiramisu/multi.py
rename to tests/dictionaries_old/40condition_fallback/tiramisu/multi.py
diff --git a/tests/dictionaries/40condition_fallback/xml/00-base.xml b/tests/dictionaries_old/40condition_fallback/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/40condition_fallback/xml/00-base.xml
rename to tests/dictionaries_old/40condition_fallback/xml/00-base.xml
diff --git a/tests/dictionaries/40condition_fallback/yml/00-base.yml b/tests/dictionaries_old/40condition_fallback/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40condition_fallback/yml/00-base.yml
rename to tests/dictionaries_old/40condition_fallback/yml/00-base.yml
diff --git a/tests/dictionaries_old/40condition_optional/00-base.xml b/tests/dictionaries_old/40condition_optional/00-base.xml
deleted file mode 100644
index 3190d07af..000000000
--- a/tests/dictionaries_old/40condition_optional/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif1
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/40condition_optional/result/rougail/00-base.yml b/tests/dictionaries_old/40condition_optional/result/rougail/00-base.yml
new file mode 100644
index 000000000..418ca0b54
--- /dev/null
+++ b/tests/dictionaries_old/40condition_optional/result/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/40condition_optional/tiramisu/base.py b/tests/dictionaries_old/40condition_optional/tiramisu/base.py
index a38f70b59..0653f1ee9 100644
--- a/tests/dictionaries_old/40condition_optional/tiramisu/base.py
+++ b/tests/dictionaries_old/40condition_optional/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40condition_optional/tiramisu/multi.py b/tests/dictionaries_old/40condition_optional/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/40condition_optional/tiramisu/multi.py
rename to tests/dictionaries_old/40condition_optional/tiramisu/multi.py
diff --git a/tests/dictionaries/40condition_optional/xml/00-base.xml b/tests/dictionaries_old/40condition_optional/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/40condition_optional/xml/00-base.xml
rename to tests/dictionaries_old/40condition_optional/xml/00-base.xml
diff --git a/tests/dictionaries/40condition_optional/yml/00-base.yml b/tests/dictionaries_old/40condition_optional/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40condition_optional/yml/00-base.yml
rename to tests/dictionaries_old/40condition_optional/yml/00-base.yml
diff --git a/tests/dictionaries_old/40condition_optional_empty/00-base.xml b/tests/dictionaries_old/40condition_optional_empty/00-base.xml
deleted file mode 100644
index 15197d244..000000000
--- a/tests/dictionaries_old/40condition_optional_empty/00-base.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/40condition_optional_empty/result/rougail/00-base.yml b/tests/dictionaries_old/40condition_optional_empty/result/rougail/00-base.yml
new file mode 100644
index 000000000..b0508a169
--- /dev/null
+++ b/tests/dictionaries_old/40condition_optional_empty/result/rougail/00-base.yml
@@ -0,0 +1,14 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/40condition_optional_empty/tiramisu/base.py b/tests/dictionaries_old/40condition_optional_empty/tiramisu/base.py
index fb1489834..0653f1ee9 100644
--- a/tests/dictionaries_old/40condition_optional_empty/tiramisu/base.py
+++ b/tests/dictionaries_old/40condition_optional_empty/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40condition_optional_empty/tiramisu/multi.py b/tests/dictionaries_old/40condition_optional_empty/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/40condition_optional_empty/tiramisu/multi.py
rename to tests/dictionaries_old/40condition_optional_empty/tiramisu/multi.py
diff --git a/tests/dictionaries/40condition_optional_empty/xml/00-base.xml b/tests/dictionaries_old/40condition_optional_empty/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/40condition_optional_empty/xml/00-base.xml
rename to tests/dictionaries_old/40condition_optional_empty/xml/00-base.xml
diff --git a/tests/dictionaries/40condition_optional_empty/yml/00-base.yml b/tests/dictionaries_old/40condition_optional_empty/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40condition_optional_empty/yml/00-base.yml
rename to tests/dictionaries_old/40condition_optional_empty/yml/00-base.yml
diff --git a/tests/dictionaries_old/40condition_optional_family/00-base.xml b/tests/dictionaries_old/40condition_optional_family/00-base.xml
deleted file mode 100644
index 8e67c7e38..000000000
--- a/tests/dictionaries_old/40condition_optional_family/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- True
- general
- general2
-
-
-
diff --git a/tests/dictionaries_old/40condition_optional_family/result/rougail/00-base.yml b/tests/dictionaries_old/40condition_optional_family/result/rougail/00-base.yml
new file mode 100644
index 000000000..8c7bfe881
--- /dev/null
+++ b/tests/dictionaries_old/40condition_optional_family/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+condition:
+ type: boolean
+general:
+ my_variable: {}
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.condition == true %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/40condition_optional_family/tiramisu/base.py b/tests/dictionaries_old/40condition_optional_family/tiramisu/base.py
index 4e8a35b93..7dc3fc4b3 100644
--- a/tests/dictionaries_old/40condition_optional_family/tiramisu/base.py
+++ b/tests/dictionaries_old/40condition_optional_family/tiramisu/base.py
@@ -1,18 +1,28 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"normal"}))
-option_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, todict=True, notraisepropertyerror=True), 'expected': ParamValue(True)}))}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40condition_optional_family/tiramisu/multi.py b/tests/dictionaries_old/40condition_optional_family/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/40condition_optional_family/tiramisu/multi.py
rename to tests/dictionaries_old/40condition_optional_family/tiramisu/multi.py
diff --git a/tests/dictionaries/40condition_optional_family/xml/00-base.xml b/tests/dictionaries_old/40condition_optional_family/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/40condition_optional_family/xml/00-base.xml
rename to tests/dictionaries_old/40condition_optional_family/xml/00-base.xml
diff --git a/tests/dictionaries/40condition_optional_family/yml/00-base.yml b/tests/dictionaries_old/40condition_optional_family/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40condition_optional_family/yml/00-base.yml
rename to tests/dictionaries_old/40condition_optional_family/yml/00-base.yml
diff --git a/tests/dictionaries_old/40empty_param/00_base.xml b/tests/dictionaries_old/40empty_param/00_base.xml
deleted file mode 100644
index 43c59f4b3..000000000
--- a/tests/dictionaries_old/40empty_param/00_base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
- 3127
-
-
-
-
-
-
- toto1
-
-
-
diff --git a/tests/dictionaries_old/40empty_param/result/rougail/00_base.yml b/tests/dictionaries_old/40empty_param/result/rougail/00_base.yml
new file mode 100644
index 000000000..405f1b112
--- /dev/null
+++ b/tests/dictionaries_old/40empty_param/result/rougail/00_base.yml
@@ -0,0 +1,15 @@
+proxy_authentifie:
+ description: proxy authentifié
+ toto1:
+ type: port
+ description: Port d'écoute du proxy
+ mode: expert
+ default:
+ type: jinja
+ jinja: '{{ null | calc_multi_condition }}'
+ toto2:
+ type: port
+ description: Port d'écoute du proxy NTLM
+ mode: expert
+ default: '3127'
+version: '1.0'
diff --git a/tests/dictionaries_old/40empty_param/tiramisu/base.py b/tests/dictionaries_old/40empty_param/tiramisu/base.py
index a94c83daa..e0f446ed3 100644
--- a/tests/dictionaries_old/40empty_param/tiramisu/base.py
+++ b/tests/dictionaries_old/40empty_param/tiramisu/base.py
@@ -1,18 +1,60 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((ParamValue(None)))), allow_private=True, properties=frozenset({"expert"}))
-option_4 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_3, option_4], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.proxy_authentifie.toto1), '__internal_type': ParamValue(port), '__internal_multi': ParamValue(False)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_4 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_3, option_4], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/40empty_param/tiramisu/multi.py b/tests/dictionaries_old/40empty_param/tiramisu/multi.py
new file mode 100644
index 000000000..062703b22
--- /dev/null
+++ b/tests/dictionaries_old/40empty_param/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((ParamValue(None)))), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_3 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_2, option_3], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((ParamValue(None)))), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_6 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_4 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_5, option_6], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/40empty_param/xml/00_base.xml b/tests/dictionaries_old/40empty_param/xml/00_base.xml
new file mode 100644
index 000000000..3593fc225
--- /dev/null
+++ b/tests/dictionaries_old/40empty_param/xml/00_base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+ 3127
+
+
+
+
+
+
+ toto1
+
+
+
diff --git a/tests/dictionaries/40empty_param/yml/00_base.yml b/tests/dictionaries_old/40empty_param/yml/00_base.yml
similarity index 100%
rename from tests/dictionaries/40empty_param/yml/00_base.yml
rename to tests/dictionaries_old/40empty_param/yml/00_base.yml
diff --git a/tests/dictionaries_old/40empty_param2/00_base.xml b/tests/dictionaries_old/40empty_param2/00_base.xml
deleted file mode 100644
index 93d7575bf..000000000
--- a/tests/dictionaries_old/40empty_param2/00_base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
- 3127
-
-
-
-
-
-
- toto1
-
-
-
diff --git a/tests/dictionaries_old/40empty_param2/result/rougail/00_base.yml b/tests/dictionaries_old/40empty_param2/result/rougail/00_base.yml
new file mode 100644
index 000000000..405f1b112
--- /dev/null
+++ b/tests/dictionaries_old/40empty_param2/result/rougail/00_base.yml
@@ -0,0 +1,15 @@
+proxy_authentifie:
+ description: proxy authentifié
+ toto1:
+ type: port
+ description: Port d'écoute du proxy
+ mode: expert
+ default:
+ type: jinja
+ jinja: '{{ null | calc_multi_condition }}'
+ toto2:
+ type: port
+ description: Port d'écoute du proxy NTLM
+ mode: expert
+ default: '3127'
+version: '1.0'
diff --git a/tests/dictionaries_old/40empty_param2/tiramisu/base.py b/tests/dictionaries_old/40empty_param2/tiramisu/base.py
index b49a413e3..e0f446ed3 100644
--- a/tests/dictionaries_old/40empty_param2/tiramisu/base.py
+++ b/tests/dictionaries_old/40empty_param2/tiramisu/base.py
@@ -1,18 +1,60 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((), kwargs={'value': ParamValue(None)})), allow_private=True, properties=frozenset({"expert"}))
-option_4 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, properties=frozenset({"expert", "mandatory"}))
-option_2 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_3, option_4], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.proxy_authentifie.toto1), '__internal_type': ParamValue(port), '__internal_multi': ParamValue(False)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_4 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_3, option_4], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/40empty_param2/tiramisu/multi.py b/tests/dictionaries_old/40empty_param2/tiramisu/multi.py
new file mode 100644
index 000000000..32d2464eb
--- /dev/null
+++ b/tests/dictionaries_old/40empty_param2/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((), kwargs={'value': ParamValue(None)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_3 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_2, option_3], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((), kwargs={'value': ParamValue(None)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_6 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_4 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_5, option_6], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/40empty_param2/xml/00_base.xml b/tests/dictionaries_old/40empty_param2/xml/00_base.xml
new file mode 100644
index 000000000..ad8ad7bc9
--- /dev/null
+++ b/tests/dictionaries_old/40empty_param2/xml/00_base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+ 3127
+
+
+
+
+
+
+ toto1
+
+
+
diff --git a/tests/dictionaries/40empty_param2/yml/00_base.yml b/tests/dictionaries_old/40empty_param2/yml/00_base.yml
similarity index 100%
rename from tests/dictionaries/40empty_param2/yml/00_base.yml
rename to tests/dictionaries_old/40empty_param2/yml/00_base.yml
diff --git a/tests/dictionaries_old/40hidden_if_in_group_fallback/00-base.xml b/tests/dictionaries_old/40hidden_if_in_group_fallback/00-base.xml
deleted file mode 100644
index b12f6df90..000000000
--- a/tests/dictionaries_old/40hidden_if_in_group_fallback/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif1
-
-
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/40hidden_if_in_group_fallback/__init__.py b/tests/dictionaries_old/40hidden_if_in_group_fallback/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/40hidden_if_in_group_fallback/makedict/after.json b/tests/dictionaries_old/40hidden_if_in_group_fallback/makedict/after.json
deleted file mode 100644
index 71106a22f..000000000
--- a/tests/dictionaries_old/40hidden_if_in_group_fallback/makedict/after.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.mode_conteneur_actif1.mode_conteneur_actif1": {
- "owner": "default",
- "value": [
- "non"
- ]
- },
- "rougail.general.mode_conteneur_actif1.mode_conteneur_actif2": {
- "owner": [
- "default"
- ],
- "value": [
- "non"
- ]
- }
-}
diff --git a/tests/dictionaries_old/40hidden_if_in_group_fallback/makedict/base.json b/tests/dictionaries_old/40hidden_if_in_group_fallback/makedict/base.json
deleted file mode 100644
index 608b4c52d..000000000
--- a/tests/dictionaries_old/40hidden_if_in_group_fallback/makedict/base.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "rougail.general.mode_conteneur_actif1.mode_conteneur_actif1": [
- {
- "rougail.general.mode_conteneur_actif1.mode_conteneur_actif1": "non",
- "rougail.general.mode_conteneur_actif1.mode_conteneur_actif2": "non"
- }
- ]
-}
diff --git a/tests/dictionaries_old/40hidden_if_in_group_fallback/makedict/before.json b/tests/dictionaries_old/40hidden_if_in_group_fallback/makedict/before.json
deleted file mode 100644
index 71106a22f..000000000
--- a/tests/dictionaries_old/40hidden_if_in_group_fallback/makedict/before.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.mode_conteneur_actif1.mode_conteneur_actif1": {
- "owner": "default",
- "value": [
- "non"
- ]
- },
- "rougail.general.mode_conteneur_actif1.mode_conteneur_actif2": {
- "owner": [
- "default"
- ],
- "value": [
- "non"
- ]
- }
-}
diff --git a/tests/dictionaries_old/40hidden_if_in_group_fallback/tiramisu/base.py b/tests/dictionaries_old/40hidden_if_in_group_fallback/tiramisu/base.py
deleted file mode 100644
index f55844254..000000000
--- a/tests/dictionaries_old/40hidden_if_in_group_fallback/tiramisu/base.py
+++ /dev/null
@@ -1,20 +0,0 @@
-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 tiramisu4 import *
-except:
- from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", multi=True, default=['non'], properties=frozenset({"force_default_on_freeze", "frozen", "mandatory"}))
-option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", multi=True, default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal"}))
-option_4 = Leadership(name="mode_conteneur_actif1", doc="No change", children=[option_5, option_6], properties=frozenset({"hidden", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
diff --git a/tests/dictionaries/40condition_optional/__init__.py b/tests/dictionaries_old/40hidden_if_in_leadership_fallback/__init__.py
similarity index 100%
rename from tests/dictionaries/40condition_optional/__init__.py
rename to tests/dictionaries_old/40hidden_if_in_leadership_fallback/__init__.py
diff --git a/tests/dictionaries/40hidden_if_in_leadership_fallback/makedict/after.json b/tests/dictionaries_old/40hidden_if_in_leadership_fallback/makedict/after.json
similarity index 100%
rename from tests/dictionaries/40hidden_if_in_leadership_fallback/makedict/after.json
rename to tests/dictionaries_old/40hidden_if_in_leadership_fallback/makedict/after.json
diff --git a/tests/dictionaries/40hidden_if_in_leadership_fallback/makedict/base.json b/tests/dictionaries_old/40hidden_if_in_leadership_fallback/makedict/base.json
similarity index 100%
rename from tests/dictionaries/40hidden_if_in_leadership_fallback/makedict/base.json
rename to tests/dictionaries_old/40hidden_if_in_leadership_fallback/makedict/base.json
diff --git a/tests/dictionaries/40hidden_if_in_leadership_fallback/makedict/before.json b/tests/dictionaries_old/40hidden_if_in_leadership_fallback/makedict/before.json
similarity index 100%
rename from tests/dictionaries/40hidden_if_in_leadership_fallback/makedict/before.json
rename to tests/dictionaries_old/40hidden_if_in_leadership_fallback/makedict/before.json
diff --git a/tests/dictionaries_old/40hidden_if_in_leadership_fallback/result/rougail/00-base.yml b/tests/dictionaries_old/40hidden_if_in_leadership_fallback/result/rougail/00-base.yml
new file mode 100644
index 000000000..867b366ff
--- /dev/null
+++ b/tests/dictionaries_old/40hidden_if_in_leadership_fallback/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif1:
+ description: No change
+ type: leadership
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - non
+ hidden:
+ type: jinja
+ jinja: '{% if __condition == "oui" %}true{% else %}false{% endif %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/40hidden_if_in_leadership_fallback/tiramisu/base.py b/tests/dictionaries_old/40hidden_if_in_leadership_fallback/tiramisu/base.py
new file mode 100644
index 000000000..1ff24853c
--- /dev/null
+++ b/tests/dictionaries_old/40hidden_if_in_leadership_fallback/tiramisu/base.py
@@ -0,0 +1,32 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", multi=True, default=['non'], properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", multi=True, default="non", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "normal"}))
+optiondescription_4 = Leadership(name="mode_conteneur_actif1", doc="No change", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/40hidden_if_in_leadership_fallback/tiramisu/multi.py b/tests/dictionaries_old/40hidden_if_in_leadership_fallback/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/40hidden_if_in_leadership_fallback/tiramisu/multi.py
rename to tests/dictionaries_old/40hidden_if_in_leadership_fallback/tiramisu/multi.py
diff --git a/tests/dictionaries/40hidden_if_in_leadership_fallback/xml/00-base.xml b/tests/dictionaries_old/40hidden_if_in_leadership_fallback/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/40hidden_if_in_leadership_fallback/xml/00-base.xml
rename to tests/dictionaries_old/40hidden_if_in_leadership_fallback/xml/00-base.xml
diff --git a/tests/dictionaries/40hidden_if_in_leadership_fallback/yml/00-base.yml b/tests/dictionaries_old/40hidden_if_in_leadership_fallback/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40hidden_if_in_leadership_fallback/yml/00-base.yml
rename to tests/dictionaries_old/40hidden_if_in_leadership_fallback/yml/00-base.yml
diff --git a/tests/dictionaries_old/40ifin_leadership/00-base.xml b/tests/dictionaries_old/40ifin_leadership/00-base.xml
deleted file mode 100644
index 1e5ef63da..000000000
--- a/tests/dictionaries_old/40ifin_leadership/00-base.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
- non
-
-
- oui
-
-
-
-
-
-
-
-
- follower1
- follower2
-
-
- oui
- follower1
-
-
-
diff --git a/tests/dictionaries_old/40ifin_leadership/makedict/after.json b/tests/dictionaries_old/40ifin_leadership/makedict/after.json
index 1578e3fb9..becfaca7d 100644
--- a/tests/dictionaries_old/40ifin_leadership/makedict/after.json
+++ b/tests/dictionaries_old/40ifin_leadership/makedict/after.json
@@ -10,9 +10,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/40ifin_leadership/makedict/before.json b/tests/dictionaries_old/40ifin_leadership/makedict/before.json
index 1578e3fb9..becfaca7d 100644
--- a/tests/dictionaries_old/40ifin_leadership/makedict/before.json
+++ b/tests/dictionaries_old/40ifin_leadership/makedict/before.json
@@ -10,9 +10,5 @@
"rougail.general.leader.leader": {
"owner": "default",
"value": []
- },
- "rougail.general.leader.follower2": {
- "owner": [],
- "value": []
}
}
diff --git a/tests/dictionaries_old/40ifin_leadership/result/rougail/00-base.yml b/tests/dictionaries_old/40ifin_leadership/result/rougail/00-base.yml
new file mode 100644
index 000000000..b0df068c6
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_leadership/result/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: condition
+ default: oui
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ follower1:
+ type: string
+ description: follower1
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/40ifin_leadership/tiramisu/base.py b/tests/dictionaries_old/40ifin_leadership/tiramisu/base.py
index 25cebef2f..16c4c4799 100644
--- a/tests/dictionaries_old/40ifin_leadership/tiramisu/base.py
+++ b/tests/dictionaries_old/40ifin_leadership/tiramisu/base.py
@@ -1,22 +1,34 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True)
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal", "notempty"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal"}))
option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-option_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/40ifin_leadership/tiramisu/multi.py b/tests/dictionaries_old/40ifin_leadership/tiramisu/multi.py
new file mode 100644
index 000000000..2bf952725
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_leadership/tiramisu/multi.py
@@ -0,0 +1,44 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"normal"}))
+option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_10, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="2", doc="2", children=[optiondescription_18])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_17])
diff --git a/tests/dictionaries_old/40ifin_leadership/xml/00-base.xml b/tests/dictionaries_old/40ifin_leadership/xml/00-base.xml
new file mode 100644
index 000000000..bd22f01d3
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_leadership/xml/00-base.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ non
+
+
+ oui
+
+
+
+
+
+
+
+
+
+
+ oui
+ follower1
+
+
+
diff --git a/tests/dictionaries/40ifin_leadership/yml/00-base.yml b/tests/dictionaries_old/40ifin_leadership/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40ifin_leadership/yml/00-base.yml
rename to tests/dictionaries_old/40ifin_leadership/yml/00-base.yml
diff --git a/tests/dictionaries_old/40ifin_leadershipauto/00-base.xml b/tests/dictionaries_old/40ifin_leadershipauto/00-base.xml
deleted file mode 100644
index a65384b65..000000000
--- a/tests/dictionaries_old/40ifin_leadershipauto/00-base.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
- /etc/mailname
-
-
-
-
-
- non
-
-
- oui
-
-
- a
-
-
-
-
-
-
-
- follower1
- follower2
-
-
- valfill
- follower1
-
-
- oui
- follower1
-
-
-
diff --git a/tests/dictionaries_old/40ifin_leadershipauto/makedict/after.json b/tests/dictionaries_old/40ifin_leadershipauto/makedict/after.json
index 3cde10136..2824bccf5 100644
--- a/tests/dictionaries_old/40ifin_leadershipauto/makedict/after.json
+++ b/tests/dictionaries_old/40ifin_leadershipauto/makedict/after.json
@@ -21,19 +21,23 @@
null
]
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/40ifin_leadershipauto/makedict/base.json b/tests/dictionaries_old/40ifin_leadershipauto/makedict/base.json
index 364a2fa98..5152a1875 100644
--- a/tests/dictionaries_old/40ifin_leadershipauto/makedict/base.json
+++ b/tests/dictionaries_old/40ifin_leadershipauto/makedict/base.json
@@ -7,8 +7,9 @@
"rougail.general.leader.follower2": null
}
],
- "services.test.files.mailname.name": "/etc/mailname",
- "services.test.files.mailname.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.mailname.name": "/etc/mailname",
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/40ifin_leadershipauto/makedict/before.json b/tests/dictionaries_old/40ifin_leadershipauto/makedict/before.json
index 3cde10136..2824bccf5 100644
--- a/tests/dictionaries_old/40ifin_leadershipauto/makedict/before.json
+++ b/tests/dictionaries_old/40ifin_leadershipauto/makedict/before.json
@@ -21,19 +21,23 @@
null
]
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/40ifin_leadershipauto/result/etc/mailname b/tests/dictionaries_old/40ifin_leadershipauto/result/etc/mailname
deleted file mode 100644
index 6da0a4c21..000000000
--- a/tests/dictionaries_old/40ifin_leadershipauto/result/etc/mailname
+++ /dev/null
@@ -1,6 +0,0 @@
-#attr
-leader: a
-follower2:
-#key
-leader: a
-follower2:
diff --git a/tests/dictionaries_old/40ifin_leadershipauto/result/rougail/00-base.yml b/tests/dictionaries_old/40ifin_leadershipauto/result/rougail/00-base.yml
new file mode 100644
index 000000000..b6bf3909c
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_leadershipauto/result/rougail/00-base.yml
@@ -0,0 +1,33 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: condition
+ default: oui
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - a
+ follower1:
+ type: string
+ description: follower1
+ hidden: true
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/40ifin_leadershipauto/result/services/00-base.yml b/tests/dictionaries_old/40ifin_leadershipauto/result/services/00-base.yml
new file mode 100644
index 000000000..e25233253
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_leadershipauto/result/services/00-base.yml
@@ -0,0 +1,4 @@
+test.service:
+ files:
+ /etc/mailname: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/40ifin_leadershipauto/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/40ifin_leadershipauto/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 46697e03a..000000000
--- a/tests/dictionaries_old/40ifin_leadershipauto/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
-z /etc/mailname - - - - -
diff --git a/tests/dictionaries_old/40ifin_leadershipauto/tiramisu/base.py b/tests/dictionaries_old/40ifin_leadershipauto/tiramisu/base.py
index a47bad73b..40e555f6a 100644
--- a/tests/dictionaries_old/40ifin_leadershipauto/tiramisu/base.py
+++ b/tests/dictionaries_old/40ifin_leadershipauto/tiramisu/base.py
@@ -1,31 +1,74 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True, default=['a'], properties=frozenset({"mandatory"}))
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, default=['a'], properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.leader.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-option_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_13 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_12 = OptionDescription(name="mailname", doc="mailname", children=[option_13, option_14])
-option_12.impl_set_information('source', "mailname")
-option_11 = OptionDescription(name="files", doc="files", children=[option_12])
+option_14 = FilenameOption(name="source", doc="source", default="/etc/mailname")
option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_16 = BoolOption(name="manage", doc="manage", default=True)
-option_10 = OptionDescription(name="test", doc="test", children=[option_11, option_15, option_16])
-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])
+optiondescription_12 = OptionDescription(name="mailname", doc="mailname", children=[option_13, option_14, option_15])
+optiondescription_11 = OptionDescription(name="files", doc="files", children=[optiondescription_12])
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_17 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_10 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_11, option_16, option_17])
+optiondescription_10.impl_set_information('type', "service")
+optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries_old/40ifin_leadershipauto/tiramisu/multi.py b/tests/dictionaries_old/40ifin_leadershipauto/tiramisu/multi.py
new file mode 100644
index 000000000..111bdc944
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_leadershipauto/tiramisu/multi.py
@@ -0,0 +1,64 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, default=['a'], properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_30 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_20 = StrOption(name="source", doc="source", default="mailname")
+option_18 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
+optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_21 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_32 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_21])
+optiondescription_32.impl_set_information('type', "service")
+optiondescription_31 = OptionDescription(name="services", doc="services", children=[optiondescription_32], properties=frozenset({"hidden"}))
+optiondescription_29 = OptionDescription(name="1", doc="1", children=[optiondescription_30, optiondescription_31])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="leader", doc="leader", multi=True, default=['a'], properties=frozenset({"mandatory", "normal"}))
+option_13 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_10, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_34 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_26 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_27 = StrOption(name="source", doc="source", default="mailname")
+option_25 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_24 = OptionDescription(name="mailname", doc="mailname", children=[option_26, option_27, option_25])
+optiondescription_23 = OptionDescription(name="files", doc="files", children=[optiondescription_24])
+option_22 = BoolOption(name="activate", doc="activate", default=True)
+option_28 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_36 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_23, option_22, option_28])
+optiondescription_36.impl_set_information('type', "service")
+optiondescription_35 = OptionDescription(name="services", doc="services", children=[optiondescription_36], properties=frozenset({"hidden"}))
+optiondescription_33 = OptionDescription(name="2", doc="2", children=[optiondescription_34, optiondescription_35])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_29, optiondescription_33])
diff --git a/tests/dictionaries_old/40ifin_leadershipauto/xml/00-base.xml b/tests/dictionaries_old/40ifin_leadershipauto/xml/00-base.xml
new file mode 100644
index 000000000..71ec860c2
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_leadershipauto/xml/00-base.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ /etc/mailname
+
+
+
+
+
+ non
+
+
+ oui
+
+
+
+ a
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ oui
+ follower1
+
+
+
diff --git a/tests/dictionaries/40ifin_leadershipauto/yml/00-base.yml b/tests/dictionaries_old/40ifin_leadershipauto/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40ifin_leadershipauto/yml/00-base.yml
rename to tests/dictionaries_old/40ifin_leadershipauto/yml/00-base.yml
diff --git a/tests/dictionaries_old/40ifin_leadershipauto_follower/00-base.xml b/tests/dictionaries_old/40ifin_leadershipauto_follower/00-base.xml
deleted file mode 100644
index 305669267..000000000
--- a/tests/dictionaries_old/40ifin_leadershipauto_follower/00-base.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
- /etc/mailname
- /etc/mailname2
-
-
-
-
-
- non
-
-
- oui
-
-
- a
- b
-
-
-
-
-
-
-
- follower1
- follower2
-
-
- valfill
- follower1
-
-
- a
- follower1
-
-
-
diff --git a/tests/dictionaries_old/40ifin_leadershipauto_follower/makedict/after.json b/tests/dictionaries_old/40ifin_leadershipauto_follower/makedict/after.json
index c78d6ab14..b899df8eb 100644
--- a/tests/dictionaries_old/40ifin_leadershipauto_follower/makedict/after.json
+++ b/tests/dictionaries_old/40ifin_leadershipauto_follower/makedict/after.json
@@ -20,7 +20,7 @@
"default"
],
"value": [
- "cannot access to option \"follower1\" because has property \"disabled\"",
+ "cannot access to option \"follower1\" because has property \"disabled\" (the value of \"leader\" is \"a\")",
null
]
},
@@ -34,27 +34,35 @@
null
]
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.files.mailname2.name": {
+ "services.test_service.files.mailname2.name": {
"owner": "default",
"value": "/etc/mailname2"
},
- "services.test.files.mailname2.activate": {
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/40ifin_leadershipauto_follower/makedict/base.json b/tests/dictionaries_old/40ifin_leadershipauto_follower/makedict/base.json
index 28acc53e7..37749908e 100644
--- a/tests/dictionaries_old/40ifin_leadershipauto_follower/makedict/base.json
+++ b/tests/dictionaries_old/40ifin_leadershipauto_follower/makedict/base.json
@@ -12,10 +12,12 @@
"rougail.general.leader.follower2": null
}
],
- "services.test.files.mailname.name": "/etc/mailname",
- "services.test.files.mailname.activate": true,
- "services.test.files.mailname2.name": "/etc/mailname2",
- "services.test.files.mailname2.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.mailname.name": "/etc/mailname",
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.files.mailname2.name": "/etc/mailname2",
+ "services.test_service.files.mailname2.source": "mailname2",
+ "services.test_service.files.mailname2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/40ifin_leadershipauto_follower/makedict/before.json b/tests/dictionaries_old/40ifin_leadershipauto_follower/makedict/before.json
index c78d6ab14..b899df8eb 100644
--- a/tests/dictionaries_old/40ifin_leadershipauto_follower/makedict/before.json
+++ b/tests/dictionaries_old/40ifin_leadershipauto_follower/makedict/before.json
@@ -20,7 +20,7 @@
"default"
],
"value": [
- "cannot access to option \"follower1\" because has property \"disabled\"",
+ "cannot access to option \"follower1\" because has property \"disabled\" (the value of \"leader\" is \"a\")",
null
]
},
@@ -34,27 +34,35 @@
null
]
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.files.mailname2.name": {
+ "services.test_service.files.mailname2.name": {
"owner": "default",
"value": "/etc/mailname2"
},
- "services.test.files.mailname2.activate": {
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/40ifin_leadershipauto_follower/result/etc/mailname b/tests/dictionaries_old/40ifin_leadershipauto_follower/result/etc/mailname
deleted file mode 100644
index b7cbd32c2..000000000
--- a/tests/dictionaries_old/40ifin_leadershipauto_follower/result/etc/mailname
+++ /dev/null
@@ -1,5 +0,0 @@
-leader: a
-follower2:
-leader: b
-follower1:
-follower2:
diff --git a/tests/dictionaries_old/40ifin_leadershipauto_follower/result/etc/mailname2 b/tests/dictionaries_old/40ifin_leadershipauto_follower/result/etc/mailname2
deleted file mode 100644
index b7cbd32c2..000000000
--- a/tests/dictionaries_old/40ifin_leadershipauto_follower/result/etc/mailname2
+++ /dev/null
@@ -1,5 +0,0 @@
-leader: a
-follower2:
-leader: b
-follower1:
-follower2:
diff --git a/tests/dictionaries_old/40ifin_leadershipauto_follower/result/rougail/00-base.yml b/tests/dictionaries_old/40ifin_leadershipauto_follower/result/rougail/00-base.yml
new file mode 100644
index 000000000..7f6599f15
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_leadershipauto_follower/result/rougail/00-base.yml
@@ -0,0 +1,33 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: condition
+ default: oui
+ leader:
+ description: leader
+ type: leadership
+ leader:
+ type: string
+ description: leader
+ multi: true
+ default:
+ - a
+ - b
+ follower1:
+ type: string
+ description: follower1
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.leader.leader == "a" %}true{% else %}false{%
+ endif %}'
+ default:
+ type: jinja
+ jinja: '{{ "valfill" | calc_val }}'
+ follower2:
+ type: string
+ description: follower2
+version: '1.0'
diff --git a/tests/dictionaries_old/40ifin_leadershipauto_follower/result/services/00-base.yml b/tests/dictionaries_old/40ifin_leadershipauto_follower/result/services/00-base.yml
new file mode 100644
index 000000000..01ae40493
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_leadershipauto_follower/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/mailname: {}
+ /etc/mailname2:
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/40ifin_leadershipauto_follower/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/40ifin_leadershipauto_follower/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 7a8d00f42..000000000
--- a/tests/dictionaries_old/40ifin_leadershipauto_follower/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
-z /etc/mailname - - - - -
-C /etc/mailname2 0644 root root - /usr/local/lib/etc/mailname2
-z /etc/mailname2 - - - - -
diff --git a/tests/dictionaries_old/40ifin_leadershipauto_follower/tiramisu/base.py b/tests/dictionaries_old/40ifin_leadershipauto_follower/tiramisu/base.py
index 25579c722..caf1b4ac1 100644
--- a/tests/dictionaries_old/40ifin_leadershipauto_follower/tiramisu/base.py
+++ b/tests/dictionaries_old/40ifin_leadershipauto_follower/tiramisu/base.py
@@ -1,36 +1,79 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_6 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b'], properties=frozenset({"mandatory"}))
-option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, todict=True, notraisepropertyerror=True), 'expected': ParamValue("a")}))}))
+option_6 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b'], properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.leader.follower1), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(True)})), properties=frozenset({"normal"}))
option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
-option_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_13 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_12 = OptionDescription(name="mailname", doc="mailname", children=[option_13, option_14])
-option_12.impl_set_information('source', "mailname")
-option_16 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_17 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = OptionDescription(name="mailname2", doc="mailname2", children=[option_16, option_17])
-option_15.impl_set_information('engine', "jinja")
-option_15.impl_set_information('source', "mailname2")
-option_11 = OptionDescription(name="files", doc="files", children=[option_12, option_15])
-option_18 = BoolOption(name="activate", doc="activate", default=True)
-option_19 = BoolOption(name="manage", doc="manage", default=True)
-option_10 = OptionDescription(name="test", doc="test", children=[option_11, option_18, option_19])
-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])
+option_14 = FilenameOption(name="source", doc="source", default="/etc/mailname")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_12 = OptionDescription(name="mailname", doc="mailname", children=[option_13, option_14, option_15])
+option_17 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_18 = FilenameOption(name="source", doc="source", default="/etc/mailname2")
+option_19 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_16 = OptionDescription(name="mailname2", doc="mailname2", children=[option_17, option_18, option_19])
+optiondescription_16.impl_set_information('engine', "jinja")
+optiondescription_11 = OptionDescription(name="files", doc="files", children=[optiondescription_12, optiondescription_16])
+option_20 = BoolOption(name="activate", doc="activate", default=True)
+option_21 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_10 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_11, option_20, option_21])
+optiondescription_10.impl_set_information('type', "service")
+optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9])
diff --git a/tests/dictionaries_old/40ifin_leadershipauto_follower/tiramisu/multi.py b/tests/dictionaries_old/40ifin_leadershipauto_follower/tiramisu/multi.py
new file mode 100644
index 000000000..e0011275a
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_leadershipauto_follower/tiramisu/multi.py
@@ -0,0 +1,74 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_5 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b'], properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_5, notraisepropertyerror=True), 'expected': ParamValue("a")}), func.calc_value_property_help)}))
+option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_38 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_20 = StrOption(name="source", doc="source", default="mailname")
+option_18 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
+option_23 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_24 = StrOption(name="source", doc="source", default="mailname2")
+option_22 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_21 = OptionDescription(name="mailname2", doc="mailname2", children=[option_23, option_24, option_22])
+optiondescription_21.impl_set_information('engine', "jinja")
+optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17, optiondescription_21])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_25 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_40 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_25])
+optiondescription_40.impl_set_information('type', "service")
+optiondescription_39 = OptionDescription(name="services", doc="services", children=[optiondescription_40], properties=frozenset({"hidden"}))
+optiondescription_37 = OptionDescription(name="1", doc="1", children=[optiondescription_38, optiondescription_39])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_10 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_12 = StrOption(name="leader", doc="leader", multi=True, default=['a', 'b'], properties=frozenset({"mandatory", "normal"}))
+option_13 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_12, notraisepropertyerror=True), 'expected': ParamValue("a")}), func.calc_value_property_help)}))
+option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"normal"}))
+optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_42 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_30 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_31 = StrOption(name="source", doc="source", default="mailname")
+option_29 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_28 = OptionDescription(name="mailname", doc="mailname", children=[option_30, option_31, option_29])
+option_34 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_35 = StrOption(name="source", doc="source", default="mailname2")
+option_33 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_32 = OptionDescription(name="mailname2", doc="mailname2", children=[option_34, option_35, option_33])
+optiondescription_32.impl_set_information('engine', "jinja")
+optiondescription_27 = OptionDescription(name="files", doc="files", children=[optiondescription_28, optiondescription_32])
+option_26 = BoolOption(name="activate", doc="activate", default=True)
+option_36 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_44 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_27, option_26, option_36])
+optiondescription_44.impl_set_information('type', "service")
+optiondescription_43 = OptionDescription(name="services", doc="services", children=[optiondescription_44], properties=frozenset({"hidden"}))
+optiondescription_41 = OptionDescription(name="2", doc="2", children=[optiondescription_42, optiondescription_43])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_37, optiondescription_41])
diff --git a/tests/dictionaries_old/40ifin_leadershipauto_follower/xml/00-base.xml b/tests/dictionaries_old/40ifin_leadershipauto_follower/xml/00-base.xml
new file mode 100644
index 000000000..50f8dcc3c
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_leadershipauto_follower/xml/00-base.xml
@@ -0,0 +1,37 @@
+
+
+
+
+ /etc/mailname
+ /etc/mailname2
+
+
+
+
+
+ non
+
+
+ oui
+
+
+
+ a
+ b
+
+
+
+
+
+
+
+
+ valfill
+ follower1
+
+
+ a
+ follower1
+
+
+
diff --git a/tests/dictionaries/40ifin_leadershipauto_follower/yml/00-base.yml b/tests/dictionaries_old/40ifin_leadershipauto_follower/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40ifin_leadershipauto_follower/yml/00-base.yml
rename to tests/dictionaries_old/40ifin_leadershipauto_follower/yml/00-base.yml
diff --git a/tests/dictionaries_old/40ifin_multi/00-base.xml b/tests/dictionaries_old/40ifin_multi/00-base.xml
deleted file mode 100644
index 4b95acc80..000000000
--- a/tests/dictionaries_old/40ifin_multi/00-base.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif3
-
-
- oui
- mode_conteneur_actif3
-
-
-
diff --git a/tests/dictionaries_old/40ifin_multi/result/rougail/00-base.yml b/tests/dictionaries_old/40ifin_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..c77570184
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_multi/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+general2:
+ hidden: true
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general2.mode_conteneur_actif2 == "oui" %}true{% else
+ %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/40ifin_multi/tiramisu/base.py b/tests/dictionaries_old/40ifin_multi/tiramisu/base.py
index 2519c6ca6..ceeb7bc61 100644
--- a/tests/dictionaries_old/40ifin_multi/tiramisu/base.py
+++ b/tests/dictionaries_old/40ifin_multi/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_5, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_4 = OptionDescription(name="general2", doc="general2", children=[option_5, option_6], properties=frozenset({"hidden", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general2", doc="general2", children=[option_5, option_6], properties=frozenset({"hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/40ifin_multi/tiramisu/multi.py b/tests/dictionaries_old/40ifin_multi/tiramisu/multi.py
new file mode 100644
index 000000000..04a628bc2
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_multi/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_3 = OptionDescription(name="general2", doc="general2", children=[option_4, option_5], properties=frozenset({"hidden", "normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_8 = OptionDescription(name="general2", doc="general2", children=[option_9, option_10], properties=frozenset({"hidden", "normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6, optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/40ifin_multi/xml/00-base.xml b/tests/dictionaries_old/40ifin_multi/xml/00-base.xml
new file mode 100644
index 000000000..cf8956d4f
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_multi/xml/00-base.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+ non
+
+
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif3
+
+
+ oui
+ mode_conteneur_actif3
+
+
+
diff --git a/tests/dictionaries/40ifin_multi/yml/00-base.yml b/tests/dictionaries_old/40ifin_multi/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40ifin_multi/yml/00-base.yml
rename to tests/dictionaries_old/40ifin_multi/yml/00-base.yml
diff --git a/tests/dictionaries_old/40ifin_multi2/00-base.xml b/tests/dictionaries_old/40ifin_multi2/00-base.xml
deleted file mode 100644
index 035c1c1bd..000000000
--- a/tests/dictionaries_old/40ifin_multi2/00-base.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- oui
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif3
-
-
- oui
- mode_conteneur_actif3
-
-
-
diff --git a/tests/dictionaries_old/40ifin_multi2/result/rougail/00-base.yml b/tests/dictionaries_old/40ifin_multi2/result/rougail/00-base.yml
new file mode 100644
index 000000000..bb6799ab5
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_multi2/result/rougail/00-base.yml
@@ -0,0 +1,22 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+general2:
+ hidden: true
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+ mode_conteneur_actif3:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general2.mode_conteneur_actif2 == "oui" %}true{% else
+ %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/40ifin_multi2/tiramisu/base.py b/tests/dictionaries_old/40ifin_multi2/tiramisu/base.py
index 7d5aa4a3d..6b8a2686f 100644
--- a/tests/dictionaries_old/40ifin_multi2/tiramisu/base.py
+++ b/tests/dictionaries_old/40ifin_multi2/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_5, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_4 = OptionDescription(name="general2", doc="general2", children=[option_5, option_6], properties=frozenset({"hidden", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_6 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general2", doc="general2", children=[option_5, option_6], properties=frozenset({"hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/40ifin_multi2/tiramisu/multi.py b/tests/dictionaries_old/40ifin_multi2/tiramisu/multi.py
new file mode 100644
index 000000000..7d0754d5b
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_multi2/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_3 = OptionDescription(name="general2", doc="general2", children=[option_4, option_5], properties=frozenset({"hidden", "normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif2", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_7, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_9, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_8 = OptionDescription(name="general2", doc="general2", children=[option_9, option_10], properties=frozenset({"hidden", "normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6, optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/40ifin_multi2/xml/00-base.xml b/tests/dictionaries_old/40ifin_multi2/xml/00-base.xml
new file mode 100644
index 000000000..0a10db95b
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_multi2/xml/00-base.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+ non
+
+
+
+
+ oui
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif3
+
+
+ oui
+ mode_conteneur_actif3
+
+
+
diff --git a/tests/dictionaries/40ifin_multi2/yml/00-base.yml b/tests/dictionaries_old/40ifin_multi2/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40ifin_multi2/yml/00-base.yml
rename to tests/dictionaries_old/40ifin_multi2/yml/00-base.yml
diff --git a/tests/dictionaries_old/40ifin_validenum/00-base.xml b/tests/dictionaries_old/40ifin_validenum/00-base.xml
deleted file mode 100644
index 6754639bc..000000000
--- a/tests/dictionaries_old/40ifin_validenum/00-base.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- non
-
-
-
-
-
-
- a
- b
- c
- mode_conteneur_actif3
-
-
- d
- mode_conteneur_actif
-
-
- d
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/40ifin_validenum/result/rougail/00-base.yml b/tests/dictionaries_old/40ifin_validenum/result/rougail/00-base.yml
new file mode 100644
index 000000000..56ee00db4
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_validenum/result/rougail/00-base.yml
@@ -0,0 +1,28 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general2.mode_conteneur_actif3 == "d" %}true{% else %}false{%
+ endif %}'
+general2:
+ hidden: true
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general2.mode_conteneur_actif3 == "d" %}false{% else %}true{%
+ endif %}'
+ mode_conteneur_actif3:
+ type: choice
+ description: No change
+ default: a
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries_old/40ifin_validenum/tiramisu/base.py b/tests/dictionaries_old/40ifin_validenum/tiramisu/base.py
index 89b38c8b5..5e981355c 100644
--- a/tests/dictionaries_old/40ifin_validenum/tiramisu/base.py
+++ b/tests/dictionaries_old/40ifin_validenum/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_6 = ChoiceOption(name="mode_conteneur_actif3", doc="No change", values=('a', 'b', 'c'), default="a", properties=frozenset({"mandatory", "normal"}))
-option_4 = OptionDescription(name="general2", doc="general2", children=[option_5, option_6], properties=frozenset({"hidden", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="general2", doc="general2", children=[option_5, option_6], properties=frozenset({"hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/40ifin_validenum/tiramisu/multi.py b/tests/dictionaries_old/40ifin_validenum/tiramisu/multi.py
new file mode 100644
index 000000000..4f7c3450d
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_validenum/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+option_5 = ChoiceOption(name="mode_conteneur_actif3", doc="No change", values=('a', 'b', 'c'), default="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general2", doc="general2", children=[option_4, option_5], properties=frozenset({"hidden", "normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7], properties=frozenset({"normal"}))
+option_9 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "normal"}))
+option_10 = ChoiceOption(name="mode_conteneur_actif3", doc="No change", values=('a', 'b', 'c'), default="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general2", doc="general2", children=[option_9, option_10], properties=frozenset({"hidden", "normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6, optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/40ifin_validenum/xml/00-base.xml b/tests/dictionaries_old/40ifin_validenum/xml/00-base.xml
new file mode 100644
index 000000000..161e3a305
--- /dev/null
+++ b/tests/dictionaries_old/40ifin_validenum/xml/00-base.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ non
+
+
+
+
+ non
+
+
+ a
+ b
+ c
+ a
+
+
+
+
+
+ d
+ mode_conteneur_actif
+
+
+ d
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/40ifin_validenum/yml/00-base.yml b/tests/dictionaries_old/40ifin_validenum/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/40ifin_validenum/yml/00-base.yml
rename to tests/dictionaries_old/40ifin_validenum/yml/00-base.yml
diff --git a/tests/dictionaries/40condition_optional_empty/__init__.py b/tests/dictionaries_old/40space_param/__init__.py
similarity index 100%
rename from tests/dictionaries/40condition_optional_empty/__init__.py
rename to tests/dictionaries_old/40space_param/__init__.py
diff --git a/tests/dictionaries_old/40space_param/makedict/after.json b/tests/dictionaries_old/40space_param/makedict/after.json
new file mode 100644
index 000000000..b88ddc479
--- /dev/null
+++ b/tests/dictionaries_old/40space_param/makedict/after.json
@@ -0,0 +1,10 @@
+{
+ "rougail.proxy_authentifie.toto1": {
+ "owner": "default",
+ "value": null
+ },
+ "rougail.proxy_authentifie.toto2": {
+ "owner": "default",
+ "value": "3127"
+ }
+}
diff --git a/tests/dictionaries_old/40space_param/makedict/base.json b/tests/dictionaries_old/40space_param/makedict/base.json
new file mode 100644
index 000000000..36d66f3d7
--- /dev/null
+++ b/tests/dictionaries_old/40space_param/makedict/base.json
@@ -0,0 +1,4 @@
+{
+ "rougail.proxy_authentifie.toto1": null,
+ "rougail.proxy_authentifie.toto2": "3127"
+}
diff --git a/tests/dictionaries_old/40space_param/makedict/before.json b/tests/dictionaries_old/40space_param/makedict/before.json
new file mode 100644
index 000000000..b88ddc479
--- /dev/null
+++ b/tests/dictionaries_old/40space_param/makedict/before.json
@@ -0,0 +1,10 @@
+{
+ "rougail.proxy_authentifie.toto1": {
+ "owner": "default",
+ "value": null
+ },
+ "rougail.proxy_authentifie.toto2": {
+ "owner": "default",
+ "value": "3127"
+ }
+}
diff --git a/tests/dictionaries_old/40space_param/result/rougail/00_base.yml b/tests/dictionaries_old/40space_param/result/rougail/00_base.yml
new file mode 100644
index 000000000..092129092
--- /dev/null
+++ b/tests/dictionaries_old/40space_param/result/rougail/00_base.yml
@@ -0,0 +1,15 @@
+proxy_authentifie:
+ description: proxy authentifié
+ toto1:
+ type: port
+ description: Port d'écoute du proxy
+ mode: expert
+ default:
+ type: jinja
+ jinja: '{{ " " | calc_multi_condition }}'
+ toto2:
+ type: port
+ description: Port d'écoute du proxy NTLM
+ mode: expert
+ default: '3127'
+version: '1.0'
diff --git a/tests/dictionaries_old/40space_param/tiramisu/base.py b/tests/dictionaries_old/40space_param/tiramisu/base.py
new file mode 100644
index 000000000..63cb39ef9
--- /dev/null
+++ b/tests/dictionaries_old/40space_param/tiramisu/base.py
@@ -0,0 +1,60 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.proxy_authentifie.toto1'] = "{{ \" \" | calc_multi_condition }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.proxy_authentifie.toto1), '__internal_type': ParamValue(port), '__internal_multi': ParamValue(False)})), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_4 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_2 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_3, option_4], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/40space_param/tiramisu/multi.py b/tests/dictionaries_old/40space_param/tiramisu/multi.py
new file mode 100644
index 000000000..748c236bd
--- /dev/null
+++ b/tests/dictionaries_old/40space_param/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((ParamValue(" ")))), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_3 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_1 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_2, option_3], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func.calc_multi_condition, Params((ParamValue(" ")))), allow_private=True, allow_protocol=True, properties=frozenset({"expert"}))
+option_6 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, allow_protocol=True, properties=frozenset({"expert", "mandatory"}))
+optiondescription_4 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_5, option_6], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/40space_param/xml/00_base.xml b/tests/dictionaries_old/40space_param/xml/00_base.xml
new file mode 100644
index 000000000..3b02f50c2
--- /dev/null
+++ b/tests/dictionaries_old/40space_param/xml/00_base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+ 3127
+
+
+
+
+
+
+ toto1
+
+
+
diff --git a/tests/dictionaries/40space_param/yml/00_base.yml b/tests/dictionaries_old/40space_param/yml/00_base.yml
similarity index 100%
rename from tests/dictionaries/40space_param/yml/00_base.yml
rename to tests/dictionaries_old/40space_param/yml/00_base.yml
diff --git a/tests/dictionaries_old/45extra_without_family/00-base.xml b/tests/dictionaries_old/45extra_without_family/00-base.xml
deleted file mode 100644
index 2d0b52c96..000000000
--- a/tests/dictionaries_old/45extra_without_family/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- /etc/file
-
-
-
-
- rougail
-
-
-
diff --git a/tests/dictionaries_old/45extra_without_family/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/45extra_without_family/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 73fe80607..000000000
--- a/tests/dictionaries_old/45extra_without_family/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
- non
- extra.my_var
-
-
-
diff --git a/tests/dictionaries_old/45extra_without_family/makedict/after.json b/tests/dictionaries_old/45extra_without_family/makedict/after.json
index 648d84a64..36f02f9c9 100644
--- a/tests/dictionaries_old/45extra_without_family/makedict/after.json
+++ b/tests/dictionaries_old/45extra_without_family/makedict/after.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": null
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/45extra_without_family/makedict/base.json b/tests/dictionaries_old/45extra_without_family/makedict/base.json
index 645b9a2d5..b97ad3bc0 100644
--- a/tests/dictionaries_old/45extra_without_family/makedict/base.json
+++ b/tests/dictionaries_old/45extra_without_family/makedict/base.json
@@ -1,8 +1,9 @@
{
"rougail.my_var": "rougail",
"extra.my_var": null,
- "services.test.files.file.name": "/etc/file",
- "services.test.files.file.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/etc/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/45extra_without_family/makedict/before.json b/tests/dictionaries_old/45extra_without_family/makedict/before.json
index 648d84a64..36f02f9c9 100644
--- a/tests/dictionaries_old/45extra_without_family/makedict/before.json
+++ b/tests/dictionaries_old/45extra_without_family/makedict/before.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": null
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
+ "owner": "default",
+ "value": "file"
+ },
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/45extra_without_family/result/etc/file b/tests/dictionaries_old/45extra_without_family/result/etc/file
deleted file mode 100644
index 7ef821752..000000000
--- a/tests/dictionaries_old/45extra_without_family/result/etc/file
+++ /dev/null
@@ -1,2 +0,0 @@
-rougail
-
diff --git a/tests/dictionaries_old/45extra_without_family/result/extra/00-base.yml b/tests/dictionaries_old/45extra_without_family/result/extra/00-base.yml
new file mode 100644
index 000000000..bf71cd665
--- /dev/null
+++ b/tests/dictionaries_old/45extra_without_family/result/extra/00-base.yml
@@ -0,0 +1,6 @@
+my_var:
+ type: string
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/45extra_without_family/result/rougail/00-base.yml b/tests/dictionaries_old/45extra_without_family/result/rougail/00-base.yml
new file mode 100644
index 000000000..dd35e17ad
--- /dev/null
+++ b/tests/dictionaries_old/45extra_without_family/result/rougail/00-base.yml
@@ -0,0 +1,3 @@
+my_var:
+ default: rougail
+version: '1.0'
diff --git a/tests/dictionaries_old/45extra_without_family/result/services/00-base.yml b/tests/dictionaries_old/45extra_without_family/result/services/00-base.yml
new file mode 100644
index 000000000..d1659db1b
--- /dev/null
+++ b/tests/dictionaries_old/45extra_without_family/result/services/00-base.yml
@@ -0,0 +1,4 @@
+test.service:
+ files:
+ /etc/file: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/45extra_without_family/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/45extra_without_family/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 574c7b823..000000000
--- a/tests/dictionaries_old/45extra_without_family/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/file 0644 root root - /usr/local/lib/etc/file
-z /etc/file - - - - -
diff --git a/tests/dictionaries_old/45extra_without_family/tiramisu/base.py b/tests/dictionaries_old/45extra_without_family/tiramisu/base.py
index 74e36c24a..ea3c9eb26 100644
--- a/tests/dictionaries_old/45extra_without_family/tiramisu/base.py
+++ b/tests/dictionaries_old/45extra_without_family/tiramisu/base.py
@@ -1,27 +1,70 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['extra.my_var'] = "{{ \"non\" | calc_multi_condition }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_2 = StrOption(name="my_var", doc="my_var", default="rougail", properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_4 = StrOption(name="my_var", doc="my_var", default=Calculation(func.calc_multi_condition, Params((ParamValue("non")))), properties=frozenset({"normal"}))
-option_3 = OptionDescription(name="extra", doc="extra", children=[option_4])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="my_var", doc="my_var", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(extra.my_var), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="extra", doc="extra", children=[option_4], properties=frozenset({"normal"}))
option_9 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_10 = BoolOption(name="activate", doc="activate", default=True)
-option_8 = OptionDescription(name="file", doc="file", children=[option_9, option_10])
-option_8.impl_set_information('source', "file")
-option_7 = OptionDescription(name="files", doc="files", children=[option_8])
+option_10 = FilenameOption(name="source", doc="source", default="/etc/file")
option_11 = BoolOption(name="activate", doc="activate", default=True)
-option_12 = BoolOption(name="manage", doc="manage", default=True)
-option_6 = OptionDescription(name="test", doc="test", children=[option_7, option_11, option_12])
-option_5 = OptionDescription(name="services", doc="services", children=[option_6], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_3, option_5])
+optiondescription_8 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_11])
+optiondescription_7 = OptionDescription(name="files", doc="files", children=[optiondescription_8])
+option_12 = BoolOption(name="activate", doc="activate", default=True)
+option_13 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_6 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_7, option_12, option_13])
+optiondescription_6.impl_set_information('type', "service")
+optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3, optiondescription_5])
diff --git a/tests/dictionaries_old/45extra_without_family/tiramisu/multi.py b/tests/dictionaries_old/45extra_without_family/tiramisu/multi.py
new file mode 100644
index 000000000..a88ed3c52
--- /dev/null
+++ b/tests/dictionaries_old/45extra_without_family/tiramisu/multi.py
@@ -0,0 +1,56 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_1 = StrOption(name="my_var", doc="my_var", default="rougail", properties=frozenset({"mandatory", "normal"}))
+optiondescription_20 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
+option_2 = StrOption(name="my_var", doc="my_var", default=Calculation(func.calc_multi_condition, Params((ParamValue("non")))), properties=frozenset({"normal"}))
+optiondescription_21 = OptionDescription(name="extra", doc="extra", children=[option_2], properties=frozenset({"normal"}))
+option_9 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_10 = StrOption(name="source", doc="source", default="file")
+option_8 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_8])
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
+option_5 = BoolOption(name="activate", doc="activate", default=True)
+option_11 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_23 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_11])
+optiondescription_23.impl_set_information('type', "service")
+optiondescription_22 = OptionDescription(name="services", doc="services", children=[optiondescription_23], properties=frozenset({"hidden"}))
+optiondescription_19 = OptionDescription(name="1", doc="1", children=[optiondescription_20, optiondescription_21, optiondescription_22])
+option_3 = StrOption(name="my_var", doc="my_var", default="rougail", properties=frozenset({"mandatory", "normal"}))
+optiondescription_25 = OptionDescription(name="rougail", doc="Rougail", children=[option_3], properties=frozenset({"normal"}))
+option_4 = StrOption(name="my_var", doc="my_var", default=Calculation(func.calc_multi_condition, Params((ParamValue("non")))), properties=frozenset({"normal"}))
+optiondescription_26 = OptionDescription(name="extra", doc="extra", children=[option_4], properties=frozenset({"normal"}))
+option_16 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_17 = StrOption(name="source", doc="source", default="file")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_14 = OptionDescription(name="file", doc="file", children=[option_16, option_17, option_15])
+optiondescription_13 = OptionDescription(name="files", doc="files", children=[optiondescription_14])
+option_12 = BoolOption(name="activate", doc="activate", default=True)
+option_18 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_28 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_13, option_12, option_18])
+optiondescription_28.impl_set_information('type', "service")
+optiondescription_27 = OptionDescription(name="services", doc="services", children=[optiondescription_28], properties=frozenset({"hidden"}))
+optiondescription_24 = OptionDescription(name="2", doc="2", children=[optiondescription_25, optiondescription_26, optiondescription_27])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_19, optiondescription_24])
diff --git a/tests/dictionaries_old/45extra_without_family/xml/00-base.xml b/tests/dictionaries_old/45extra_without_family/xml/00-base.xml
new file mode 100644
index 000000000..5996f6a62
--- /dev/null
+++ b/tests/dictionaries_old/45extra_without_family/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ /etc/file
+
+
+
+
+ rougail
+
+
+
diff --git a/tests/dictionaries_old/45extra_without_family/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/45extra_without_family/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..ee97b99be
--- /dev/null
+++ b/tests/dictionaries_old/45extra_without_family/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+ non
+ extra.my_var
+
+
+
diff --git a/tests/dictionaries/45extra_without_family/yml/00-base.yml b/tests/dictionaries_old/45extra_without_family/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/45extra_without_family/yml/00-base.yml
rename to tests/dictionaries_old/45extra_without_family/yml/00-base.yml
diff --git a/tests/dictionaries_old/45extra_without_family/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/45extra_without_family/yml/extra_dirs/extra/00-base.yml
new file mode 100644
index 000000000..cb9796467
--- /dev/null
+++ b/tests/dictionaries_old/45extra_without_family/yml/extra_dirs/extra/00-base.yml
@@ -0,0 +1,12 @@
+version: '0.10'
+variables:
+- variable:
+ - name: my_var
+ type: string
+constraints:
+- fill:
+ - name: calc_multi_condition
+ param:
+ - text: non
+ target:
+ - text: extra.my_var
diff --git a/tests/dictionaries_old/45multi_family/00-base.xml b/tests/dictionaries_old/45multi_family/00-base.xml
deleted file mode 100644
index 4f5d86b6d..000000000
--- a/tests/dictionaries_old/45multi_family/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/45multi_family/result/rougail/00-base.yml b/tests/dictionaries_old/45multi_family/result/rougail/00-base.yml
new file mode 100644
index 000000000..b64455981
--- /dev/null
+++ b/tests/dictionaries_old/45multi_family/result/rougail/00-base.yml
@@ -0,0 +1,4 @@
+base:
+ subfamily:
+ variable: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/45multi_family/tiramisu/base.py b/tests/dictionaries_old/45multi_family/tiramisu/base.py
index 73252d55d..5f6e38186 100644
--- a/tests/dictionaries_old/45multi_family/tiramisu/base.py
+++ b/tests/dictionaries_old/45multi_family/tiramisu/base.py
@@ -1,18 +1,27 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
-option_3 = OptionDescription(name="subfamily", doc="subfamily", children=[option_4], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="base", doc="base", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/45multi_family/tiramisu/multi.py b/tests/dictionaries_old/45multi_family/tiramisu/multi.py
new file mode 100644
index 000000000..fdbd7aebb
--- /dev/null
+++ b/tests/dictionaries_old/45multi_family/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="subfamily", doc="subfamily", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="base", doc="base", children=[optiondescription_2], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_6 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="subfamily", doc="subfamily", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="base", doc="base", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/45multi_family/xml/00-base.xml b/tests/dictionaries_old/45multi_family/xml/00-base.xml
new file mode 100644
index 000000000..79a3eb1bd
--- /dev/null
+++ b/tests/dictionaries_old/45multi_family/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/45multi_family/yml/00-base.yml b/tests/dictionaries_old/45multi_family/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/45multi_family/yml/00-base.yml
rename to tests/dictionaries_old/45multi_family/yml/00-base.yml
diff --git a/tests/dictionaries_old/45multi_family_basic/00-base.xml b/tests/dictionaries_old/45multi_family_basic/00-base.xml
deleted file mode 100644
index 831c04364..000000000
--- a/tests/dictionaries_old/45multi_family_basic/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/45multi_family_basic/result/rougail/00-base.yml b/tests/dictionaries_old/45multi_family_basic/result/rougail/00-base.yml
new file mode 100644
index 000000000..512a20c18
--- /dev/null
+++ b/tests/dictionaries_old/45multi_family_basic/result/rougail/00-base.yml
@@ -0,0 +1,5 @@
+base:
+ subfamily:
+ variable:
+ mode: basic
+version: '1.0'
diff --git a/tests/dictionaries_old/45multi_family_basic/tiramisu/base.py b/tests/dictionaries_old/45multi_family_basic/tiramisu/base.py
index 97e5b2e80..5f6e38186 100644
--- a/tests/dictionaries_old/45multi_family_basic/tiramisu/base.py
+++ b/tests/dictionaries_old/45multi_family_basic/tiramisu/base.py
@@ -1,18 +1,27 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"basic"}))
-option_3 = OptionDescription(name="subfamily", doc="subfamily", children=[option_4], properties=frozenset({"basic"}))
-option_2 = OptionDescription(name="base", doc="base", children=[option_3], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/45multi_family_basic/tiramisu/multi.py b/tests/dictionaries_old/45multi_family_basic/tiramisu/multi.py
new file mode 100644
index 000000000..9a9fc8661
--- /dev/null
+++ b/tests/dictionaries_old/45multi_family_basic/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"basic"}))
+optiondescription_2 = OptionDescription(name="subfamily", doc="subfamily", children=[option_3], properties=frozenset({"basic"}))
+optiondescription_1 = OptionDescription(name="base", doc="base", children=[optiondescription_2], properties=frozenset({"basic"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_6 = StrOption(name="variable", doc="variable", properties=frozenset({"basic"}))
+optiondescription_5 = OptionDescription(name="subfamily", doc="subfamily", children=[option_6], properties=frozenset({"basic"}))
+optiondescription_4 = OptionDescription(name="base", doc="base", children=[optiondescription_5], properties=frozenset({"basic"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/45multi_family_basic/xml/00-base.xml b/tests/dictionaries_old/45multi_family_basic/xml/00-base.xml
new file mode 100644
index 000000000..49af9854b
--- /dev/null
+++ b/tests/dictionaries_old/45multi_family_basic/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/45multi_family_basic/yml/00-base.yml b/tests/dictionaries_old/45multi_family_basic/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/45multi_family_basic/yml/00-base.yml
rename to tests/dictionaries_old/45multi_family_basic/yml/00-base.yml
diff --git a/tests/dictionaries_old/45multi_family_expert/00-base.xml b/tests/dictionaries_old/45multi_family_expert/00-base.xml
deleted file mode 100644
index 307757d25..000000000
--- a/tests/dictionaries_old/45multi_family_expert/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/45multi_family_expert/result/rougail/00-base.yml b/tests/dictionaries_old/45multi_family_expert/result/rougail/00-base.yml
new file mode 100644
index 000000000..30d106591
--- /dev/null
+++ b/tests/dictionaries_old/45multi_family_expert/result/rougail/00-base.yml
@@ -0,0 +1,5 @@
+base:
+ mode: expert
+ subfamily:
+ variable: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/45multi_family_expert/tiramisu/base.py b/tests/dictionaries_old/45multi_family_expert/tiramisu/base.py
index e762e5e52..5f6e38186 100644
--- a/tests/dictionaries_old/45multi_family_expert/tiramisu/base.py
+++ b/tests/dictionaries_old/45multi_family_expert/tiramisu/base.py
@@ -1,18 +1,27 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"expert"}))
-option_3 = OptionDescription(name="subfamily", doc="subfamily", children=[option_4], properties=frozenset({"expert"}))
-option_2 = OptionDescription(name="base", doc="base", children=[option_3], properties=frozenset({"expert"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/45multi_family_expert/tiramisu/multi.py b/tests/dictionaries_old/45multi_family_expert/tiramisu/multi.py
new file mode 100644
index 000000000..33913f4bb
--- /dev/null
+++ b/tests/dictionaries_old/45multi_family_expert/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"expert"}))
+optiondescription_2 = OptionDescription(name="subfamily", doc="subfamily", children=[option_3], properties=frozenset({"expert"}))
+optiondescription_1 = OptionDescription(name="base", doc="base", children=[optiondescription_2], properties=frozenset({"expert"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"expert"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_6 = StrOption(name="variable", doc="variable", properties=frozenset({"expert"}))
+optiondescription_5 = OptionDescription(name="subfamily", doc="subfamily", children=[option_6], properties=frozenset({"expert"}))
+optiondescription_4 = OptionDescription(name="base", doc="base", children=[optiondescription_5], properties=frozenset({"expert"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"expert"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/45multi_family_expert/xml/00-base.xml b/tests/dictionaries_old/45multi_family_expert/xml/00-base.xml
new file mode 100644
index 000000000..35f954bf1
--- /dev/null
+++ b/tests/dictionaries_old/45multi_family_expert/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/45multi_family_expert/yml/00-base.yml b/tests/dictionaries_old/45multi_family_expert/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/45multi_family_expert/yml/00-base.yml
rename to tests/dictionaries_old/45multi_family_expert/yml/00-base.yml
diff --git a/tests/dictionaries_old/45multi_family_order/00-base.xml b/tests/dictionaries_old/45multi_family_order/00-base.xml
deleted file mode 100644
index b04d9937c..000000000
--- a/tests/dictionaries_old/45multi_family_order/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/45multi_family_order/result/rougail/00-base.yml b/tests/dictionaries_old/45multi_family_order/result/rougail/00-base.yml
new file mode 100644
index 000000000..6c0b21cf0
--- /dev/null
+++ b/tests/dictionaries_old/45multi_family_order/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+variable1: {}
+base:
+ variable2: {}
+ subfamily:
+ variable3: {}
+ variable4: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/45multi_family_order/tiramisu/base.py b/tests/dictionaries_old/45multi_family_order/tiramisu/base.py
index 467d1c1ee..5f6e38186 100644
--- a/tests/dictionaries_old/45multi_family_order/tiramisu/base.py
+++ b/tests/dictionaries_old/45multi_family_order/tiramisu/base.py
@@ -1,21 +1,27 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_2 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal"}))
-option_4 = StrOption(name="variable2", doc="variable2", properties=frozenset({"normal"}))
-option_6 = StrOption(name="variable3", doc="variable3", properties=frozenset({"normal"}))
-option_5 = OptionDescription(name="subfamily", doc="subfamily", children=[option_6], properties=frozenset({"normal"}))
-option_7 = StrOption(name="variable4", doc="variable4", properties=frozenset({"normal"}))
-option_3 = OptionDescription(name="base", doc="base", children=[option_4, option_5, option_7], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/45multi_family_order/tiramisu/multi.py b/tests/dictionaries_old/45multi_family_order/tiramisu/multi.py
new file mode 100644
index 000000000..3c64b9712
--- /dev/null
+++ b/tests/dictionaries_old/45multi_family_order/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_1 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal"}))
+option_3 = StrOption(name="variable2", doc="variable2", properties=frozenset({"normal"}))
+option_5 = StrOption(name="variable3", doc="variable3", properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="subfamily", doc="subfamily", children=[option_5], properties=frozenset({"normal"}))
+option_6 = StrOption(name="variable4", doc="variable4", properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="base", doc="base", children=[option_3, optiondescription_4, option_6], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, optiondescription_2], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14])
+option_7 = StrOption(name="variable1", doc="variable1", properties=frozenset({"normal"}))
+option_9 = StrOption(name="variable2", doc="variable2", properties=frozenset({"normal"}))
+option_11 = StrOption(name="variable3", doc="variable3", properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="subfamily", doc="subfamily", children=[option_11], properties=frozenset({"normal"}))
+option_12 = StrOption(name="variable4", doc="variable4", properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="base", doc="base", children=[option_9, optiondescription_10, option_12], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[option_7, optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_15])
diff --git a/tests/dictionaries_old/45multi_family_order/xml/00-base.xml b/tests/dictionaries_old/45multi_family_order/xml/00-base.xml
new file mode 100644
index 000000000..2c8f8eeb4
--- /dev/null
+++ b/tests/dictionaries_old/45multi_family_order/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/45multi_family_order/yml/00-base.yml b/tests/dictionaries_old/45multi_family_order/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/45multi_family_order/yml/00-base.yml
rename to tests/dictionaries_old/45multi_family_order/yml/00-base.yml
diff --git a/tests/dictionaries_old/45without_family/00-base.xml b/tests/dictionaries_old/45without_family/00-base.xml
deleted file mode 100644
index 4d3f27155..000000000
--- a/tests/dictionaries_old/45without_family/00-base.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/45without_family/result/rougail/00-base.yml b/tests/dictionaries_old/45without_family/result/rougail/00-base.yml
new file mode 100644
index 000000000..32911c123
--- /dev/null
+++ b/tests/dictionaries_old/45without_family/result/rougail/00-base.yml
@@ -0,0 +1,2 @@
+variable: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/45without_family/tiramisu/base.py b/tests/dictionaries_old/45without_family/tiramisu/base.py
index d4eb09fcf..5f6e38186 100644
--- a/tests/dictionaries_old/45without_family/tiramisu/base.py
+++ b/tests/dictionaries_old/45without_family/tiramisu/base.py
@@ -1,16 +1,27 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_2 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/45without_family/tiramisu/multi.py b/tests/dictionaries_old/45without_family/tiramisu/multi.py
new file mode 100644
index 000000000..dfd6cb29a
--- /dev/null
+++ b/tests/dictionaries_old/45without_family/tiramisu/multi.py
@@ -0,0 +1,32 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_1 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[option_1], properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="1", doc="1", children=[optiondescription_4])
+option_2 = StrOption(name="variable", doc="variable", properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3, optiondescription_5])
diff --git a/tests/dictionaries_old/45without_family/xml/00-base.xml b/tests/dictionaries_old/45without_family/xml/00-base.xml
new file mode 100644
index 000000000..b9c3b7ddb
--- /dev/null
+++ b/tests/dictionaries_old/45without_family/xml/00-base.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/tests/dictionaries/45without_family/yml/00-base.yml b/tests/dictionaries_old/45without_family/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/45without_family/yml/00-base.yml
rename to tests/dictionaries_old/45without_family/yml/00-base.yml
diff --git a/tests/dictionaries_old/50exists_exists/00-base.xml b/tests/dictionaries_old/50exists_exists/00-base.xml
deleted file mode 100644
index 8d03cb4e5..000000000
--- a/tests/dictionaries_old/50exists_exists/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/50exists_exists/01-base.xml b/tests/dictionaries_old/50exists_exists/01-base.xml
deleted file mode 100644
index 518de7561..000000000
--- a/tests/dictionaries_old/50exists_exists/01-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/50exists_exists/result/rougail/00-base.yml b/tests/dictionaries_old/50exists_exists/result/rougail/00-base.yml
new file mode 100644
index 000000000..98b2ee4ba
--- /dev/null
+++ b/tests/dictionaries_old/50exists_exists/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/50exists_exists/result/rougail/01-base.yml b/tests/dictionaries_old/50exists_exists/result/rougail/01-base.yml
new file mode 100644
index 000000000..5942a802a
--- /dev/null
+++ b/tests/dictionaries_old/50exists_exists/result/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: New description
+ exists: false
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/50exists_exists/tiramisu/base.py b/tests/dictionaries_old/50exists_exists/tiramisu/base.py
index 44b674bda..49e4306e1 100644
--- a/tests/dictionaries_old/50exists_exists/tiramisu/base.py
+++ b/tests/dictionaries_old/50exists_exists/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/50exists_exists/tiramisu/multi.py b/tests/dictionaries_old/50exists_exists/tiramisu/multi.py
new file mode 100644
index 000000000..83aa99a96
--- /dev/null
+++ b/tests/dictionaries_old/50exists_exists/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/50exists_exists/xml/00-base.xml b/tests/dictionaries_old/50exists_exists/xml/00-base.xml
new file mode 100644
index 000000000..c4eb67496
--- /dev/null
+++ b/tests/dictionaries_old/50exists_exists/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/50exists_exists/xml/01-base.xml b/tests/dictionaries_old/50exists_exists/xml/01-base.xml
new file mode 100644
index 000000000..e5e2013a8
--- /dev/null
+++ b/tests/dictionaries_old/50exists_exists/xml/01-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ oui
+
+
+
+
diff --git a/tests/dictionaries/50exists_exists/yml/00-base.yml b/tests/dictionaries_old/50exists_exists/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/50exists_exists/yml/00-base.yml
rename to tests/dictionaries_old/50exists_exists/yml/00-base.yml
diff --git a/tests/dictionaries/50exists_exists/yml/01-base.yml b/tests/dictionaries_old/50exists_exists/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/50exists_exists/yml/01-base.yml
rename to tests/dictionaries_old/50exists_exists/yml/01-base.yml
diff --git a/tests/dictionaries_old/50redefine_description/00-base.xml b/tests/dictionaries_old/50redefine_description/00-base.xml
deleted file mode 100644
index 8c9d801f9..000000000
--- a/tests/dictionaries_old/50redefine_description/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/50redefine_description/01-redefine.xml b/tests/dictionaries_old/50redefine_description/01-redefine.xml
deleted file mode 100644
index 758bd2f2f..000000000
--- a/tests/dictionaries_old/50redefine_description/01-redefine.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/50redefine_description/result/rougail/00-base.yml b/tests/dictionaries_old/50redefine_description/result/rougail/00-base.yml
new file mode 100644
index 000000000..da1ea3c58
--- /dev/null
+++ b/tests/dictionaries_old/50redefine_description/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/50redefine_description/result/rougail/01-redefine.yml b/tests/dictionaries_old/50redefine_description/result/rougail/01-redefine.yml
new file mode 100644
index 000000000..24ab230e5
--- /dev/null
+++ b/tests/dictionaries_old/50redefine_description/result/rougail/01-redefine.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ description: Redefined
+version: '1.0'
diff --git a/tests/dictionaries_old/50redefine_description/tiramisu/base.py b/tests/dictionaries_old/50redefine_description/tiramisu/base.py
index 076e545ba..b5095a5fb 100644
--- a/tests/dictionaries_old/50redefine_description/tiramisu/base.py
+++ b/tests/dictionaries_old/50redefine_description/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefined", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/50redefine_description/tiramisu/multi.py b/tests/dictionaries_old/50redefine_description/tiramisu/multi.py
new file mode 100644
index 000000000..dc3fc4ed7
--- /dev/null
+++ b/tests/dictionaries_old/50redefine_description/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefined", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefined", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/50redefine_description/xml/00-base.xml b/tests/dictionaries_old/50redefine_description/xml/00-base.xml
new file mode 100644
index 000000000..210875c0a
--- /dev/null
+++ b/tests/dictionaries_old/50redefine_description/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/50redefine_description/xml/01-redefine.xml b/tests/dictionaries_old/50redefine_description/xml/01-redefine.xml
new file mode 100644
index 000000000..6983ceea7
--- /dev/null
+++ b/tests/dictionaries_old/50redefine_description/xml/01-redefine.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/50redefine_description/yml/00-base.yml b/tests/dictionaries_old/50redefine_description/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/50redefine_description/yml/00-base.yml
rename to tests/dictionaries_old/50redefine_description/yml/00-base.yml
diff --git a/tests/dictionaries/50redefine_description/yml/01-redefine.yml b/tests/dictionaries_old/50redefine_description/yml/01-redefine.yml
similarity index 100%
rename from tests/dictionaries/50redefine_description/yml/01-redefine.yml
rename to tests/dictionaries_old/50redefine_description/yml/01-redefine.yml
diff --git a/tests/dictionaries_old/51exists_nonexists/00-base.xml b/tests/dictionaries_old/51exists_nonexists/00-base.xml
deleted file mode 100644
index 6d475995c..000000000
--- a/tests/dictionaries_old/51exists_nonexists/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/51exists_nonexists/01-base.xml b/tests/dictionaries_old/51exists_nonexists/01-base.xml
deleted file mode 100644
index 59583fe19..000000000
--- a/tests/dictionaries_old/51exists_nonexists/01-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/51exists_nonexists/result/rougail/00-base.yml b/tests/dictionaries_old/51exists_nonexists/result/rougail/00-base.yml
new file mode 100644
index 000000000..f3ac44820
--- /dev/null
+++ b/tests/dictionaries_old/51exists_nonexists/result/rougail/00-base.yml
@@ -0,0 +1,11 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: Description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/51exists_nonexists/result/rougail/01-base.yml b/tests/dictionaries_old/51exists_nonexists/result/rougail/01-base.yml
new file mode 100644
index 000000000..4ebe57964
--- /dev/null
+++ b/tests/dictionaries_old/51exists_nonexists/result/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif2:
+ type: string
+ description: New description
+ exists: false
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/51exists_nonexists/tiramisu/base.py b/tests/dictionaries_old/51exists_nonexists/tiramisu/base.py
index f4ea2745e..fad8ef2f5 100644
--- a/tests/dictionaries_old/51exists_nonexists/tiramisu/base.py
+++ b/tests/dictionaries_old/51exists_nonexists/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif1", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_5 = StrOption(name="mode_conteneur_actif2", doc="New description", default="oui", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51exists_nonexists/tiramisu/multi.py b/tests/dictionaries_old/51exists_nonexists/tiramisu/multi.py
new file mode 100644
index 000000000..3ecf9c7e9
--- /dev/null
+++ b/tests/dictionaries_old/51exists_nonexists/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif1", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="New description", default="oui", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode_conteneur_actif1", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="New description", default="oui", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/51exists_nonexists/xml/00-base.xml b/tests/dictionaries_old/51exists_nonexists/xml/00-base.xml
new file mode 100644
index 000000000..f36484663
--- /dev/null
+++ b/tests/dictionaries_old/51exists_nonexists/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/51exists_nonexists/xml/01-base.xml b/tests/dictionaries_old/51exists_nonexists/xml/01-base.xml
new file mode 100644
index 000000000..221e7e6a0
--- /dev/null
+++ b/tests/dictionaries_old/51exists_nonexists/xml/01-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ oui
+
+
+
+
diff --git a/tests/dictionaries/51exists_nonexists/yml/00-base.yml b/tests/dictionaries_old/51exists_nonexists/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51exists_nonexists/yml/00-base.yml
rename to tests/dictionaries_old/51exists_nonexists/yml/00-base.yml
diff --git a/tests/dictionaries/51exists_nonexists/yml/01-base.yml b/tests/dictionaries_old/51exists_nonexists/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/51exists_nonexists/yml/01-base.yml
rename to tests/dictionaries_old/51exists_nonexists/yml/01-base.yml
diff --git a/tests/dictionaries_old/51exists_redefine/00-base.xml b/tests/dictionaries_old/51exists_redefine/00-base.xml
deleted file mode 100644
index 8d03cb4e5..000000000
--- a/tests/dictionaries_old/51exists_redefine/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/51exists_redefine/01-base.xml b/tests/dictionaries_old/51exists_redefine/01-base.xml
deleted file mode 100644
index 61c054295..000000000
--- a/tests/dictionaries_old/51exists_redefine/01-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- oui
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/51exists_redefine/result/rougail/00-base.yml b/tests/dictionaries_old/51exists_redefine/result/rougail/00-base.yml
new file mode 100644
index 000000000..98b2ee4ba
--- /dev/null
+++ b/tests/dictionaries_old/51exists_redefine/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/51exists_redefine/result/rougail/01-base.yml b/tests/dictionaries_old/51exists_redefine/result/rougail/01-base.yml
new file mode 100644
index 000000000..238b1bb47
--- /dev/null
+++ b/tests/dictionaries_old/51exists_redefine/result/rougail/01-base.yml
@@ -0,0 +1,10 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ exists: true
+ default: oui
+ mode_conteneur_actif1:
+ redefine: true
+ exists: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/51exists_redefine/tiramisu/base.py b/tests/dictionaries_old/51exists_redefine/tiramisu/base.py
index 3286603e1..c93112328 100644
--- a/tests/dictionaries_old/51exists_redefine/tiramisu/base.py
+++ b/tests/dictionaries_old/51exists_redefine/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51exists_redefine/tiramisu/multi.py b/tests/dictionaries_old/51exists_redefine/tiramisu/multi.py
new file mode 100644
index 000000000..9712639f6
--- /dev/null
+++ b/tests/dictionaries_old/51exists_redefine/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/51exists_redefine/xml/00-base.xml b/tests/dictionaries_old/51exists_redefine/xml/00-base.xml
new file mode 100644
index 000000000..c4eb67496
--- /dev/null
+++ b/tests/dictionaries_old/51exists_redefine/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/51exists_redefine/xml/01-base.xml b/tests/dictionaries_old/51exists_redefine/xml/01-base.xml
new file mode 100644
index 000000000..6da6ec58a
--- /dev/null
+++ b/tests/dictionaries_old/51exists_redefine/xml/01-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ oui
+
+
+ oui
+
+
+
+
diff --git a/tests/dictionaries/51exists_redefine/yml/00-base.yml b/tests/dictionaries_old/51exists_redefine/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51exists_redefine/yml/00-base.yml
rename to tests/dictionaries_old/51exists_redefine/yml/00-base.yml
diff --git a/tests/dictionaries/51exists_redefine/yml/01-base.yml b/tests/dictionaries_old/51exists_redefine/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/51exists_redefine/yml/01-base.yml
rename to tests/dictionaries_old/51exists_redefine/yml/01-base.yml
diff --git a/tests/dictionaries_old/51redefine_auto/00-base.xml b/tests/dictionaries_old/51redefine_auto/00-base.xml
deleted file mode 100644
index 1195d9fe7..000000000
--- a/tests/dictionaries_old/51redefine_auto/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
- non
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/51redefine_auto/01-base.xml b/tests/dictionaries_old/51redefine_auto/01-base.xml
deleted file mode 100644
index 698aed491..000000000
--- a/tests/dictionaries_old/51redefine_auto/01-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
- non
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/51redefine_auto/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_auto/result/rougail/00-base.yml
new file mode 100644
index 000000000..a30a45a99
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_auto/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_auto/result/rougail/01-base.yml b/tests/dictionaries_old/51redefine_auto/result/rougail/01-base.yml
new file mode 100644
index 000000000..3dd4c3524
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_auto/result/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | concat }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_auto/tiramisu/base.py b/tests/dictionaries_old/51redefine_auto/tiramisu/base.py
index cae9200a7..42698d284 100644
--- a/tests/dictionaries_old/51redefine_auto/tiramisu/base.py
+++ b/tests/dictionaries_old/51redefine_auto/tiramisu/base.py
@@ -1,17 +1,59 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_auto/tiramisu/multi.py b/tests/dictionaries_old/51redefine_auto/tiramisu/multi.py
new file mode 100644
index 000000000..d498b9969
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_auto/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/51redefine_auto/xml/00-base.xml b/tests/dictionaries_old/51redefine_auto/xml/00-base.xml
new file mode 100644
index 000000000..4e1ec84ca
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_auto/xml/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ non
+
+
+
+
+
+ non
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries_old/51redefine_auto/xml/01-base.xml b/tests/dictionaries_old/51redefine_auto/xml/01-base.xml
new file mode 100644
index 000000000..a0f8ec9d3
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_auto/xml/01-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+ non
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/51redefine_auto/yml/00-base.yml b/tests/dictionaries_old/51redefine_auto/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_auto/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_auto/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_auto/yml/01-base.yml b/tests/dictionaries_old/51redefine_auto/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_auto/yml/01-base.yml
rename to tests/dictionaries_old/51redefine_auto/yml/01-base.yml
diff --git a/tests/dictionaries_old/51redefine_autofill/00-base.xml b/tests/dictionaries_old/51redefine_autofill/00-base.xml
deleted file mode 100644
index 0da7cab19..000000000
--- a/tests/dictionaries_old/51redefine_autofill/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/51redefine_autofill/01-base.xml b/tests/dictionaries_old/51redefine_autofill/01-base.xml
deleted file mode 100644
index 28881d84f..000000000
--- a/tests/dictionaries_old/51redefine_autofill/01-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
- non
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/51redefine_autofill/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_autofill/result/rougail/00-base.yml
new file mode 100644
index 000000000..4bd6a838b
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_autofill/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "oui" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_autofill/result/rougail/01-base.yml b/tests/dictionaries_old/51redefine_autofill/result/rougail/01-base.yml
new file mode 100644
index 000000000..5fe628160
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_autofill/result/rougail/01-base.yml
@@ -0,0 +1,8 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ hidden: false
+ default:
+ type: jinja
+ jinja: '{{ "non" | concat }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_autofill/tiramisu/base.py b/tests/dictionaries_old/51redefine_autofill/tiramisu/base.py
index 6ca5e4961..3c47c2edc 100644
--- a/tests/dictionaries_old/51redefine_autofill/tiramisu/base.py
+++ b/tests/dictionaries_old/51redefine_autofill/tiramisu/base.py
@@ -1,17 +1,59 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_autofill/tiramisu/multi.py b/tests/dictionaries_old/51redefine_autofill/tiramisu/multi.py
new file mode 100644
index 000000000..19c79d37a
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_autofill/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/51redefine_autofill/xml/00-base.xml b/tests/dictionaries_old/51redefine_autofill/xml/00-base.xml
new file mode 100644
index 000000000..da431cf71
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_autofill/xml/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries_old/51redefine_autofill/xml/01-base.xml b/tests/dictionaries_old/51redefine_autofill/xml/01-base.xml
new file mode 100644
index 000000000..d49c297db
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_autofill/xml/01-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+ non
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/51redefine_autofill/yml/00-base.yml b/tests/dictionaries_old/51redefine_autofill/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_autofill/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_autofill/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_autofill/yml/01-base.yml b/tests/dictionaries_old/51redefine_autofill/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_autofill/yml/01-base.yml
rename to tests/dictionaries_old/51redefine_autofill/yml/01-base.yml
diff --git a/tests/dictionaries_old/51redefine_family/00-base.xml b/tests/dictionaries_old/51redefine_family/00-base.xml
deleted file mode 100644
index 458057f26..000000000
--- a/tests/dictionaries_old/51redefine_family/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- non
-
-
-
-
-
- oui
- general2
-
-
-
diff --git a/tests/dictionaries_old/51redefine_family/01-base.xml b/tests/dictionaries_old/51redefine_family/01-base.xml
deleted file mode 100644
index dc45e35ed..000000000
--- a/tests/dictionaries_old/51redefine_family/01-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_family/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_family/result/rougail/00-base.yml
new file mode 100644
index 000000000..2655d6635
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_family/result/rougail/00-base.yml
@@ -0,0 +1,18 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+general2:
+ hidden: true
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.mode_conteneur_actif == "oui" %}true{% else %}false{%
+ endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_family/result/rougail/01-base.yml b/tests/dictionaries_old/51redefine_family/result/rougail/01-base.yml
new file mode 100644
index 000000000..84dcc917c
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_family/result/rougail/01-base.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_family/tiramisu/base.py b/tests/dictionaries_old/51redefine_family/tiramisu/base.py
index 461a00da3..b36db7378 100644
--- a/tests/dictionaries_old/51redefine_family/tiramisu/base.py
+++ b/tests/dictionaries_old/51redefine_family/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = OptionDescription(name="general2", doc="general2", children=[option_5], properties=frozenset({"hidden", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue("oui")}))}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_4])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_4 = OptionDescription(name="general2", doc="general2", children=[option_5], properties=frozenset({"hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_family/tiramisu/multi.py b/tests/dictionaries_old/51redefine_family/tiramisu/multi.py
new file mode 100644
index 000000000..f86eeacb6
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_family/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+option_4 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general2", doc="general2", children=[option_4], properties=frozenset({"hidden", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"normal"}))
+option_8 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general2", doc="general2", children=[option_8], properties=frozenset({"hidden", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("oui")}), func.calc_value_property_help)}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])
diff --git a/tests/dictionaries_old/51redefine_family/xml/00-base.xml b/tests/dictionaries_old/51redefine_family/xml/00-base.xml
new file mode 100644
index 000000000..1ad57e1a3
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_family/xml/00-base.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ non
+
+
+
+
+ non
+
+
+
+
+
+ oui
+ general2
+
+
+
diff --git a/tests/dictionaries_old/51redefine_family/xml/01-base.xml b/tests/dictionaries_old/51redefine_family/xml/01-base.xml
new file mode 100644
index 000000000..60d444720
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_family/xml/01-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/51redefine_family/yml/00-base.yml b/tests/dictionaries_old/51redefine_family/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_family/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_family/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_family/yml/01-base.yml b/tests/dictionaries_old/51redefine_family/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_family/yml/01-base.yml
rename to tests/dictionaries_old/51redefine_family/yml/01-base.yml
diff --git a/tests/dictionaries_old/51redefine_fill/00-base.xml b/tests/dictionaries_old/51redefine_fill/00-base.xml
deleted file mode 100644
index 0da7cab19..000000000
--- a/tests/dictionaries_old/51redefine_fill/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/51redefine_fill/01-base.xml b/tests/dictionaries_old/51redefine_fill/01-base.xml
deleted file mode 100644
index 698aed491..000000000
--- a/tests/dictionaries_old/51redefine_fill/01-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
- non
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/51redefine_fill/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_fill/result/rougail/00-base.yml
new file mode 100644
index 000000000..4bd6a838b
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_fill/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "oui" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_fill/result/rougail/01-base.yml b/tests/dictionaries_old/51redefine_fill/result/rougail/01-base.yml
new file mode 100644
index 000000000..3dd4c3524
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_fill/result/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | concat }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_fill/tiramisu/base.py b/tests/dictionaries_old/51redefine_fill/tiramisu/base.py
index cae9200a7..42698d284 100644
--- a/tests/dictionaries_old/51redefine_fill/tiramisu/base.py
+++ b/tests/dictionaries_old/51redefine_fill/tiramisu/base.py
@@ -1,17 +1,59 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_fill/tiramisu/multi.py b/tests/dictionaries_old/51redefine_fill/tiramisu/multi.py
new file mode 100644
index 000000000..d498b9969
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_fill/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/51redefine_fill/xml/00-base.xml b/tests/dictionaries_old/51redefine_fill/xml/00-base.xml
new file mode 100644
index 000000000..da431cf71
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_fill/xml/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries_old/51redefine_fill/xml/01-base.xml b/tests/dictionaries_old/51redefine_fill/xml/01-base.xml
new file mode 100644
index 000000000..a0f8ec9d3
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_fill/xml/01-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+ non
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/51redefine_fill/yml/00-base.yml b/tests/dictionaries_old/51redefine_fill/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_fill/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_fill/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_fill/yml/01-base.yml b/tests/dictionaries_old/51redefine_fill/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_fill/yml/01-base.yml
rename to tests/dictionaries_old/51redefine_fill/yml/01-base.yml
diff --git a/tests/dictionaries_old/51redefine_fillauto/00-base.xml b/tests/dictionaries_old/51redefine_fillauto/00-base.xml
deleted file mode 100644
index 9373d5171..000000000
--- a/tests/dictionaries_old/51redefine_fillauto/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/51redefine_fillauto/01-base.xml b/tests/dictionaries_old/51redefine_fillauto/01-base.xml
deleted file mode 100644
index f295968dd..000000000
--- a/tests/dictionaries_old/51redefine_fillauto/01-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
- non
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/51redefine_fillauto/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_fillauto/result/rougail/00-base.yml
new file mode 100644
index 000000000..2408964ed
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_fillauto/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ "oui" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_fillauto/result/rougail/01-base.yml b/tests/dictionaries_old/51redefine_fillauto/result/rougail/01-base.yml
new file mode 100644
index 000000000..df07c6509
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_fillauto/result/rougail/01-base.yml
@@ -0,0 +1,8 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | concat }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_fillauto/tiramisu/base.py b/tests/dictionaries_old/51redefine_fillauto/tiramisu/base.py
index cae9200a7..42698d284 100644
--- a/tests/dictionaries_old/51redefine_fillauto/tiramisu/base.py
+++ b/tests/dictionaries_old/51redefine_fillauto/tiramisu/base.py
@@ -1,17 +1,59 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_fillauto/tiramisu/multi.py b/tests/dictionaries_old/51redefine_fillauto/tiramisu/multi.py
new file mode 100644
index 000000000..d498b9969
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_fillauto/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.concat, Params((), kwargs={'valeur': ParamValue("non")})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/51redefine_fillauto/xml/00-base.xml b/tests/dictionaries_old/51redefine_fillauto/xml/00-base.xml
new file mode 100644
index 000000000..99a545f67
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_fillauto/xml/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries_old/51redefine_fillauto/xml/01-base.xml b/tests/dictionaries_old/51redefine_fillauto/xml/01-base.xml
new file mode 100644
index 000000000..c58ca38d2
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_fillauto/xml/01-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+ non
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries/51redefine_fillauto/yml/00-base.yml b/tests/dictionaries_old/51redefine_fillauto/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_fillauto/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_fillauto/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_fillauto/yml/01-base.yml b/tests/dictionaries_old/51redefine_fillauto/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_fillauto/yml/01-base.yml
rename to tests/dictionaries_old/51redefine_fillauto/yml/01-base.yml
diff --git a/tests/dictionaries_old/51redefine_help/00-base.xml b/tests/dictionaries_old/51redefine_help/00-base.xml
deleted file mode 100644
index c39693ee6..000000000
--- a/tests/dictionaries_old/51redefine_help/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_help/01-base.xml b/tests/dictionaries_old/51redefine_help/01-base.xml
deleted file mode 100644
index f6ea98445..000000000
--- a/tests/dictionaries_old/51redefine_help/01-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_help/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_help/result/rougail/00-base.yml
new file mode 100644
index 000000000..75b1e935b
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_help/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ help: redefine help family
+ mode_conteneur_actif:
+ type: string
+ description: redefine help
+ hidden: true
+ help: redefine help
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_help/result/rougail/01-base.yml b/tests/dictionaries_old/51redefine_help/result/rougail/01-base.yml
new file mode 100644
index 000000000..465f7a2c0
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_help/result/rougail/01-base.yml
@@ -0,0 +1,9 @@
+general:
+ redefine: true
+ help: redefine help family ok
+ mode_conteneur_actif:
+ redefine: true
+ hidden: true
+ help: redefine help ok
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_help/tiramisu/base.py b/tests/dictionaries_old/51redefine_help/tiramisu/base.py
index 3ae82eddd..4c03764e4 100644
--- a/tests/dictionaries_old/51redefine_help/tiramisu/base.py
+++ b/tests/dictionaries_old/51redefine_help/tiramisu/base.py
@@ -1,19 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_3.impl_set_information('help', "redefine help ok")
-option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
-option_2.impl_set_information('help', "redefine help family ok")
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_2.impl_set_information('help', "redefine help family ok")
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_help/tiramisu/multi.py b/tests/dictionaries_old/51redefine_help/tiramisu/multi.py
new file mode 100644
index 000000000..10a016d66
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_help/tiramisu/multi.py
@@ -0,0 +1,38 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_2.impl_set_information('help', "redefine help ok")
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_1.impl_set_information('help', "redefine help family ok")
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4.impl_set_information('help', "redefine help ok")
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_3.impl_set_information('help', "redefine help family ok")
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/51redefine_help/xml/00-base.xml b/tests/dictionaries_old/51redefine_help/xml/00-base.xml
new file mode 100644
index 000000000..be229ae75
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_help/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/51redefine_help/xml/01-base.xml b/tests/dictionaries_old/51redefine_help/xml/01-base.xml
new file mode 100644
index 000000000..cda85ba1b
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_help/xml/01-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/51redefine_help/yml/00-base.yml b/tests/dictionaries_old/51redefine_help/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_help/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_help/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_help/yml/01-base.yml b/tests/dictionaries_old/51redefine_help/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_help/yml/01-base.yml
rename to tests/dictionaries_old/51redefine_help/yml/01-base.yml
diff --git a/tests/dictionaries_old/51redefine_hidden/00-base.xml b/tests/dictionaries_old/51redefine_hidden/00-base.xml
deleted file mode 100644
index ccab2d183..000000000
--- a/tests/dictionaries_old/51redefine_hidden/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_hidden/01-redefine.xml b/tests/dictionaries_old/51redefine_hidden/01-redefine.xml
deleted file mode 100644
index 31eef0530..000000000
--- a/tests/dictionaries_old/51redefine_hidden/01-redefine.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_hidden/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_hidden/result/rougail/00-base.yml
new file mode 100644
index 000000000..01b94adff
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_hidden/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine hidden
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_hidden/result/rougail/01-redefine.yml b/tests/dictionaries_old/51redefine_hidden/result/rougail/01-redefine.yml
new file mode 100644
index 000000000..a98fe3a5a
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_hidden/result/rougail/01-redefine.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ hidden: true
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_hidden/tiramisu/base.py b/tests/dictionaries_old/51redefine_hidden/tiramisu/base.py
index 8dfb9937c..6fb051c88 100644
--- a/tests/dictionaries_old/51redefine_hidden/tiramisu/base.py
+++ b/tests/dictionaries_old/51redefine_hidden/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_hidden/tiramisu/multi.py b/tests/dictionaries_old/51redefine_hidden/tiramisu/multi.py
new file mode 100644
index 000000000..a6e2a62b5
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_hidden/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/51redefine_hidden/xml/00-base.xml b/tests/dictionaries_old/51redefine_hidden/xml/00-base.xml
new file mode 100644
index 000000000..9817d7078
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_hidden/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/51redefine_hidden/xml/01-redefine.xml b/tests/dictionaries_old/51redefine_hidden/xml/01-redefine.xml
new file mode 100644
index 000000000..87efadfb0
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_hidden/xml/01-redefine.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/51redefine_hidden/yml/00-base.yml b/tests/dictionaries_old/51redefine_hidden/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_hidden/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_hidden/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_hidden/yml/01-redefine.yml b/tests/dictionaries_old/51redefine_hidden/yml/01-redefine.yml
similarity index 100%
rename from tests/dictionaries/51redefine_hidden/yml/01-redefine.yml
rename to tests/dictionaries_old/51redefine_hidden/yml/01-redefine.yml
diff --git a/tests/dictionaries/40condition_optional_family/__init__.py b/tests/dictionaries_old/51redefine_hidden_inverse/__init__.py
similarity index 100%
rename from tests/dictionaries/40condition_optional_family/__init__.py
rename to tests/dictionaries_old/51redefine_hidden_inverse/__init__.py
diff --git a/tests/dictionaries/40condition_fallback/makedict/after.json b/tests/dictionaries_old/51redefine_hidden_inverse/makedict/after.json
similarity index 100%
rename from tests/dictionaries/40condition_fallback/makedict/after.json
rename to tests/dictionaries_old/51redefine_hidden_inverse/makedict/after.json
diff --git a/tests/dictionaries/40condition_fallback/makedict/base.json b/tests/dictionaries_old/51redefine_hidden_inverse/makedict/base.json
similarity index 100%
rename from tests/dictionaries/40condition_fallback/makedict/base.json
rename to tests/dictionaries_old/51redefine_hidden_inverse/makedict/base.json
diff --git a/tests/dictionaries/40condition_fallback/makedict/before.json b/tests/dictionaries_old/51redefine_hidden_inverse/makedict/before.json
similarity index 100%
rename from tests/dictionaries/40condition_fallback/makedict/before.json
rename to tests/dictionaries_old/51redefine_hidden_inverse/makedict/before.json
diff --git a/tests/dictionaries_old/51redefine_hidden_inverse/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_hidden_inverse/result/rougail/00-base.yml
new file mode 100644
index 000000000..709c26c30
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_hidden_inverse/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine hidden
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_hidden_inverse/result/rougail/01-redefine.yml b/tests/dictionaries_old/51redefine_hidden_inverse/result/rougail/01-redefine.yml
new file mode 100644
index 000000000..b695912b8
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_hidden_inverse/result/rougail/01-redefine.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ hidden: false
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_hidden_inverse/tiramisu/base.py b/tests/dictionaries_old/51redefine_hidden_inverse/tiramisu/base.py
new file mode 100644
index 000000000..ce2dcb94f
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_hidden_inverse/tiramisu/base.py
@@ -0,0 +1,29 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_hidden_inverse/tiramisu/multi.py b/tests/dictionaries_old/51redefine_hidden_inverse/tiramisu/multi.py
new file mode 100644
index 000000000..043f8dd4f
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_hidden_inverse/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/51redefine_hidden_inverse/xml/00-base.xml b/tests/dictionaries_old/51redefine_hidden_inverse/xml/00-base.xml
new file mode 100644
index 000000000..747f91891
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_hidden_inverse/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/51redefine_hidden_inverse/xml/01-redefine.xml b/tests/dictionaries_old/51redefine_hidden_inverse/xml/01-redefine.xml
new file mode 100644
index 000000000..1856b0786
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_hidden_inverse/xml/01-redefine.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/51redefine_hidden_inverse/yml/00-base.yml b/tests/dictionaries_old/51redefine_hidden_inverse/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_hidden_inverse/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_hidden_inverse/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_hidden_inverse/yml/01-redefine.yml b/tests/dictionaries_old/51redefine_hidden_inverse/yml/01-redefine.yml
similarity index 100%
rename from tests/dictionaries/51redefine_hidden_inverse/yml/01-redefine.yml
rename to tests/dictionaries_old/51redefine_hidden_inverse/yml/01-redefine.yml
diff --git a/tests/dictionaries_old/51redefine_multi/00-base.xml b/tests/dictionaries_old/51redefine_multi/00-base.xml
deleted file mode 100644
index 8c9d801f9..000000000
--- a/tests/dictionaries_old/51redefine_multi/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_multi/01-redefine.xml b/tests/dictionaries_old/51redefine_multi/01-redefine.xml
deleted file mode 100644
index df4f28e5c..000000000
--- a/tests/dictionaries_old/51redefine_multi/01-redefine.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_multi/errno_48 b/tests/dictionaries_old/51redefine_multi/errno_48
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/51redefine_multi/makedict/after.json b/tests/dictionaries_old/51redefine_multi/makedict/after.json
new file mode 100644
index 000000000..cfec4b1fc
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_multi/makedict/after.json
@@ -0,0 +1,8 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": [
+ "non"
+ ]
+ }
+}
diff --git a/tests/dictionaries_old/51redefine_multi/makedict/base.json b/tests/dictionaries_old/51redefine_multi/makedict/base.json
new file mode 100644
index 000000000..feedadc62
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_multi/makedict/base.json
@@ -0,0 +1,5 @@
+{
+ "rougail.general.mode_conteneur_actif": [
+ "non"
+ ]
+}
diff --git a/tests/dictionaries_old/51redefine_multi/makedict/before.json b/tests/dictionaries_old/51redefine_multi/makedict/before.json
new file mode 100644
index 000000000..cfec4b1fc
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_multi/makedict/before.json
@@ -0,0 +1,8 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": [
+ "non"
+ ]
+ }
+}
diff --git a/tests/dictionaries_old/51redefine_multi/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..da1ea3c58
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_multi/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine description
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_multi/result/rougail/01-redefine.yml b/tests/dictionaries_old/51redefine_multi/result/rougail/01-redefine.yml
new file mode 100644
index 000000000..0358df0a4
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_multi/result/rougail/01-redefine.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ multi: true
+ default:
+ - non
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_multi/tiramisu/base.py b/tests/dictionaries_old/51redefine_multi/tiramisu/base.py
new file mode 100644
index 000000000..73ee68ca0
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_multi/tiramisu/base.py
@@ -0,0 +1,29 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_multi/tiramisu/multi.py b/tests/dictionaries_old/51redefine_multi/tiramisu/multi.py
new file mode 100644
index 000000000..4b92ec1d2
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_multi/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/51redefine_multi/xml/00-base.xml b/tests/dictionaries_old/51redefine_multi/xml/00-base.xml
new file mode 100644
index 000000000..210875c0a
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_multi/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/51redefine_multi/xml/01-redefine.xml b/tests/dictionaries_old/51redefine_multi/xml/01-redefine.xml
new file mode 100644
index 000000000..772cbb8cd
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_multi/xml/01-redefine.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/51redefine_multi/yml/00-base.yml b/tests/dictionaries_old/51redefine_multi/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_multi/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_multi/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_multi/yml/01-redefine.yml b/tests/dictionaries_old/51redefine_multi/yml/01-redefine.yml
similarity index 100%
rename from tests/dictionaries/51redefine_multi/yml/01-redefine.yml
rename to tests/dictionaries_old/51redefine_multi/yml/01-redefine.yml
diff --git a/tests/dictionaries_old/51redefine_remove_check/00-base.xml b/tests/dictionaries_old/51redefine_remove_check/00-base.xml
deleted file mode 100644
index 9dc96e514..000000000
--- a/tests/dictionaries_old/51redefine_remove_check/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
- a
- b
- c
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/51redefine_remove_check/01-base.xml b/tests/dictionaries_old/51redefine_remove_check/01-base.xml
deleted file mode 100644
index 5ef05ee98..000000000
--- a/tests/dictionaries_old/51redefine_remove_check/01-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_remove_check/__init__.py b/tests/dictionaries_old/51redefine_remove_check/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/51redefine_remove_check/tiramisu/base.py b/tests/dictionaries_old/51redefine_remove_check/tiramisu/base.py
deleted file mode 100644
index ed1a2d590..000000000
--- a/tests/dictionaries_old/51redefine_remove_check/tiramisu/base.py
+++ /dev/null
@@ -1,17 +0,0 @@
-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 tiramisu4 import *
-except:
- from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
diff --git a/tests/dictionaries_old/51redefine_remove_condition/00-base.xml b/tests/dictionaries_old/51redefine_remove_condition/00-base.xml
deleted file mode 100644
index 4d3a9bcea..000000000
--- a/tests/dictionaries_old/51redefine_remove_condition/00-base.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif1
- mode_conteneur_actif2
-
-
-
diff --git a/tests/dictionaries_old/51redefine_remove_condition/01-base.xml b/tests/dictionaries_old/51redefine_remove_condition/01-base.xml
deleted file mode 100644
index 5b96406b9..000000000
--- a/tests/dictionaries_old/51redefine_remove_condition/01-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_remove_condition/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_remove_condition/result/rougail/00-base.yml
new file mode 100644
index 000000000..395ca775c
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_remove_condition/result/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_remove_condition/result/rougail/01-base.yml b/tests/dictionaries_old/51redefine_remove_condition/result/rougail/01-base.yml
new file mode 100644
index 000000000..d80321891
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_remove_condition/result/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ condition:
+ redefine: true
+ hidden: false
+ disabled: false
+ mandatory: false
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_remove_condition/tiramisu/base.py b/tests/dictionaries_old/51redefine_remove_condition/tiramisu/base.py
index 79f303240..bdfd59fab 100644
--- a/tests/dictionaries_old/51redefine_remove_condition/tiramisu/base.py
+++ b/tests/dictionaries_old/51redefine_remove_condition/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"normal"}))
option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_remove_condition/tiramisu/multi.py b/tests/dictionaries_old/51redefine_remove_condition/tiramisu/multi.py
new file mode 100644
index 000000000..a297535ed
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_remove_condition/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="general", doc="general", children=[option_7, option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="2", doc="2", children=[optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_13])
diff --git a/tests/dictionaries_old/51redefine_remove_condition/xml/00-base.xml b/tests/dictionaries_old/51redefine_remove_condition/xml/00-base.xml
new file mode 100644
index 000000000..20771d5d4
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_remove_condition/xml/00-base.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
+
+ oui
+ mode_conteneur_actif1
+ mode_conteneur_actif2
+
+
+
diff --git a/tests/dictionaries/51redefine_remove_condition_filelist/xml/01-base.xml b/tests/dictionaries_old/51redefine_remove_condition/xml/01-base.xml
similarity index 100%
rename from tests/dictionaries/51redefine_remove_condition_filelist/xml/01-base.xml
rename to tests/dictionaries_old/51redefine_remove_condition/xml/01-base.xml
diff --git a/tests/dictionaries/51redefine_remove_condition/yml/00-base.yml b/tests/dictionaries_old/51redefine_remove_condition/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_remove_condition/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_remove_condition/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_remove_condition/yml/01-base.yml b/tests/dictionaries_old/51redefine_remove_condition/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_remove_condition/yml/01-base.yml
rename to tests/dictionaries_old/51redefine_remove_condition/yml/01-base.yml
diff --git a/tests/dictionaries/40hidden_if_in_leadership_fallback/__init__.py b/tests/dictionaries_old/51redefine_remove_condition_filelist/__init__.py
similarity index 100%
rename from tests/dictionaries/40hidden_if_in_leadership_fallback/__init__.py
rename to tests/dictionaries_old/51redefine_remove_condition_filelist/__init__.py
diff --git a/tests/dictionaries/51redefine_remove_condition_filelist/makedict/after.json b/tests/dictionaries_old/51redefine_remove_condition_filelist/makedict/after.json
similarity index 100%
rename from tests/dictionaries/51redefine_remove_condition_filelist/makedict/after.json
rename to tests/dictionaries_old/51redefine_remove_condition_filelist/makedict/after.json
diff --git a/tests/dictionaries/51redefine_remove_condition_filelist/makedict/base.json b/tests/dictionaries_old/51redefine_remove_condition_filelist/makedict/base.json
similarity index 100%
rename from tests/dictionaries/51redefine_remove_condition_filelist/makedict/base.json
rename to tests/dictionaries_old/51redefine_remove_condition_filelist/makedict/base.json
diff --git a/tests/dictionaries/51redefine_remove_condition_filelist/makedict/before.json b/tests/dictionaries_old/51redefine_remove_condition_filelist/makedict/before.json
similarity index 100%
rename from tests/dictionaries/51redefine_remove_condition_filelist/makedict/before.json
rename to tests/dictionaries_old/51redefine_remove_condition_filelist/makedict/before.json
diff --git a/tests/dictionaries_old/51redefine_remove_condition_filelist/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_remove_condition_filelist/result/rougail/00-base.yml
new file mode 100644
index 000000000..395ca775c
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_remove_condition_filelist/result/rougail/00-base.yml
@@ -0,0 +1,27 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ condition:
+ type: string
+ description: No change
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+ mode_conteneur_actif2:
+ type: string
+ description: No change
+ default: non
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_remove_condition_filelist/result/rougail/01-base.yml b/tests/dictionaries_old/51redefine_remove_condition_filelist/result/rougail/01-base.yml
new file mode 100644
index 000000000..d80321891
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_remove_condition_filelist/result/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ condition:
+ redefine: true
+ hidden: false
+ disabled: false
+ mandatory: false
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_remove_condition_filelist/result/services/00-base.yml b/tests/dictionaries_old/51redefine_remove_condition_filelist/result/services/00-base.yml
new file mode 100644
index 000000000..91273e771
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_remove_condition_filelist/result/services/00-base.yml
@@ -0,0 +1,8 @@
+test.service:
+ files:
+ /etc/file:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.general.condition == "oui" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_remove_condition_filelist/tiramisu/base.py b/tests/dictionaries_old/51redefine_remove_condition_filelist/tiramisu/base.py
new file mode 100644
index 000000000..ef19c4f81
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_remove_condition_filelist/tiramisu/base.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"normal"}))
+option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_11 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_12 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_13 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_10 = OptionDescription(name="file", doc="file", children=[option_11, option_12, option_13])
+optiondescription_9 = OptionDescription(name="files", doc="files", children=[optiondescription_10])
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+option_15 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_8 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_9, option_14, option_15])
+optiondescription_8.impl_set_information('type', "service")
+optiondescription_7 = OptionDescription(name="services", doc="services", children=[optiondescription_8], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7])
diff --git a/tests/dictionaries/51redefine_remove_condition_filelist/tiramisu/multi.py b/tests/dictionaries_old/51redefine_remove_condition_filelist/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/51redefine_remove_condition_filelist/tiramisu/multi.py
rename to tests/dictionaries_old/51redefine_remove_condition_filelist/tiramisu/multi.py
diff --git a/tests/dictionaries/51redefine_remove_condition_filelist/xml/00-base.xml b/tests/dictionaries_old/51redefine_remove_condition_filelist/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/51redefine_remove_condition_filelist/xml/00-base.xml
rename to tests/dictionaries_old/51redefine_remove_condition_filelist/xml/00-base.xml
diff --git a/tests/dictionaries_old/51redefine_remove_condition_filelist/xml/01-base.xml b/tests/dictionaries_old/51redefine_remove_condition_filelist/xml/01-base.xml
new file mode 100644
index 000000000..a7251ff57
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_remove_condition_filelist/xml/01-base.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/51redefine_remove_condition_filelist/yml/00-base.yml b/tests/dictionaries_old/51redefine_remove_condition_filelist/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_remove_condition_filelist/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_remove_condition_filelist/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_remove_condition_filelist/yml/01-base.yml b/tests/dictionaries_old/51redefine_remove_condition_filelist/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_remove_condition_filelist/yml/01-base.yml
rename to tests/dictionaries_old/51redefine_remove_condition_filelist/yml/01-base.yml
diff --git a/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/00-base.xml b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/00-base.xml
deleted file mode 100644
index a3471e442..000000000
--- a/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- no
-
-
- no
-
-
- no
-
-
- no
-
-
- False
-
-
-
-
- yes
- my_var1
- my_var2
-
-
-
diff --git a/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/01-base.xml b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/01-base.xml
deleted file mode 100644
index 2798de04b..000000000
--- a/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/01-base.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/result/rougail/00-base.yml
new file mode 100644
index 000000000..916758354
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/result/rougail/00-base.yml
@@ -0,0 +1,20 @@
+my_var:
+ default: 'no'
+condition:
+ default: 'no'
+my_var1:
+ hidden: true
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.condition == "yes" %}true{% else %}false{% endif %}'
+my_var2:
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.condition == "yes" %}true{% else %}false{% endif %}'
+server_deployed:
+ type: boolean
+ hidden: true
+ default: false
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/result/rougail/01-base.yml b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/result/rougail/01-base.yml
new file mode 100644
index 000000000..9147370ae
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/result/rougail/01-base.yml
@@ -0,0 +1,6 @@
+condition:
+ redefine: true
+ hidden: false
+ disabled: false
+ mandatory: false
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/tiramisu/base.py b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/tiramisu/base.py
index 1aa360c1d..6f642a86d 100644
--- a/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/tiramisu/base.py
+++ b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_6 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"hidden", "mandatory", "normal"}))
-option_2 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_6, todict=True, notraisepropertyerror=True), 'expected': ParamValue(True)}))}))
-option_3 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"normal"}))
option_4 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_5 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4, option_5, option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_6 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4, option_5, option_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/51redefine_removecondition_nonautofreeze/tiramisu/multi.py b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/51redefine_removecondition_nonautofreeze/tiramisu/multi.py
rename to tests/dictionaries_old/51redefine_removecondition_nonautofreeze/tiramisu/multi.py
diff --git a/tests/dictionaries/51redefine_removecondition_nonautofreeze/xml/00-base.xml b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/51redefine_removecondition_nonautofreeze/xml/00-base.xml
rename to tests/dictionaries_old/51redefine_removecondition_nonautofreeze/xml/00-base.xml
diff --git a/tests/dictionaries/51redefine_removecondition_nonautofreeze/xml/01-base.xml b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/xml/01-base.xml
similarity index 100%
rename from tests/dictionaries/51redefine_removecondition_nonautofreeze/xml/01-base.xml
rename to tests/dictionaries_old/51redefine_removecondition_nonautofreeze/xml/01-base.xml
diff --git a/tests/dictionaries/51redefine_removecondition_nonautofreeze/yml/00-base.yml b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_removecondition_nonautofreeze/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_removecondition_nonautofreeze/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_removecondition_nonautofreeze/yml/01-base.yml b/tests/dictionaries_old/51redefine_removecondition_nonautofreeze/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_removecondition_nonautofreeze/yml/01-base.yml
rename to tests/dictionaries_old/51redefine_removecondition_nonautofreeze/yml/01-base.yml
diff --git a/tests/dictionaries_old/51redefine_type/00-base.xml b/tests/dictionaries_old/51redefine_type/00-base.xml
deleted file mode 100644
index 8c9d801f9..000000000
--- a/tests/dictionaries_old/51redefine_type/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_type/01-redefine.xml b/tests/dictionaries_old/51redefine_type/01-redefine.xml
deleted file mode 100644
index cf1a2adbe..000000000
--- a/tests/dictionaries_old/51redefine_type/01-redefine.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_type/__init__.py b/tests/dictionaries_old/51redefine_type/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/51redefine_type/errno_48 b/tests/dictionaries_old/51redefine_type/errno_48
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/51redefine_validenum/00-base.xml b/tests/dictionaries_old/51redefine_validenum/00-base.xml
deleted file mode 100644
index 9d3c5cf02..000000000
--- a/tests/dictionaries_old/51redefine_validenum/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
- a
- b
- c
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/51redefine_validenum/01-redefine.xml b/tests/dictionaries_old/51redefine_validenum/01-redefine.xml
deleted file mode 100644
index 1e5e21099..000000000
--- a/tests/dictionaries_old/51redefine_validenum/01-redefine.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
- a
- b
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/51redefine_validenum/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_validenum/result/rougail/00-base.yml
new file mode 100644
index 000000000..fef3650ba
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_validenum/result/rougail/00-base.yml
@@ -0,0 +1,11 @@
+general:
+ mode_conteneur_actif:
+ type: choice
+ description: Redefine description
+ hidden: true
+ default: a
+ choices:
+ - a
+ - b
+ - c
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_validenum/result/rougail/01-redefine.yml b/tests/dictionaries_old/51redefine_validenum/result/rougail/01-redefine.yml
new file mode 100644
index 000000000..8babcec2f
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_validenum/result/rougail/01-redefine.yml
@@ -0,0 +1,9 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+ validators: null
+ default: a
+ choices:
+ - a
+ - b
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_validenum/tiramisu/base.py b/tests/dictionaries_old/51redefine_validenum/tiramisu/base.py
index b7fd2de45..bd9bb75e0 100644
--- a/tests/dictionaries_old/51redefine_validenum/tiramisu/base.py
+++ b/tests/dictionaries_old/51redefine_validenum/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = ChoiceOption(name="mode_conteneur_actif", doc="Redefine description", values=('a', 'b'), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_validenum/tiramisu/multi.py b/tests/dictionaries_old/51redefine_validenum/tiramisu/multi.py
new file mode 100644
index 000000000..8ad7153cd
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_validenum/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = ChoiceOption(name="mode_conteneur_actif", doc="Redefine description", values=('a', 'b'), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = ChoiceOption(name="mode_conteneur_actif", doc="Redefine description", values=('a', 'b'), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/51redefine_validenum/xml/00-base.xml b/tests/dictionaries_old/51redefine_validenum/xml/00-base.xml
new file mode 100644
index 000000000..6a2263a32
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_validenum/xml/00-base.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ a
+ b
+ c
+ a
+
+
+
+
+
diff --git a/tests/dictionaries_old/51redefine_validenum/xml/01-redefine.xml b/tests/dictionaries_old/51redefine_validenum/xml/01-redefine.xml
new file mode 100644
index 000000000..3e7a7635b
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_validenum/xml/01-redefine.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ a
+ b
+ a
+
+
+
+
+
diff --git a/tests/dictionaries/51redefine_validenum/yml/00-base.yml b/tests/dictionaries_old/51redefine_validenum/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_validenum/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_validenum/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_validenum/yml/01-redefine.yml b/tests/dictionaries_old/51redefine_validenum/yml/01-redefine.yml
similarity index 100%
rename from tests/dictionaries/51redefine_validenum/yml/01-redefine.yml
rename to tests/dictionaries_old/51redefine_validenum/yml/01-redefine.yml
diff --git a/tests/dictionaries_old/51redefine_value/00-base.xml b/tests/dictionaries_old/51redefine_value/00-base.xml
deleted file mode 100644
index e1bf475ec..000000000
--- a/tests/dictionaries_old/51redefine_value/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_value/01-redefine.xml b/tests/dictionaries_old/51redefine_value/01-redefine.xml
deleted file mode 100644
index 4fe7dc59e..000000000
--- a/tests/dictionaries_old/51redefine_value/01-redefine.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/51redefine_value/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_value/result/rougail/00-base.yml
new file mode 100644
index 000000000..74c33aee8
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_value/result/rougail/00-base.yml
@@ -0,0 +1,11 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine value
+ default: non
+ mode_conteneur_actif1:
+ type: string
+ description: Redefine value
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_value/result/rougail/01-redefine.yml b/tests/dictionaries_old/51redefine_value/result/rougail/01-redefine.yml
new file mode 100644
index 000000000..c9908834d
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_value/result/rougail/01-redefine.yml
@@ -0,0 +1,5 @@
+general:
+ mode_conteneur_actif1:
+ redefine: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_value/tiramisu/base.py b/tests/dictionaries_old/51redefine_value/tiramisu/base.py
index 8350435af..09de009fa 100644
--- a/tests/dictionaries_old/51redefine_value/tiramisu/base.py
+++ b/tests/dictionaries_old/51redefine_value/tiramisu/base.py
@@ -1,18 +1,30 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine value", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="mode_conteneur_actif1", doc="Redefine value", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_value/tiramisu/multi.py b/tests/dictionaries_old/51redefine_value/tiramisu/multi.py
new file mode 100644
index 000000000..fe18720ab
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_value/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine value", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif1", doc="Redefine value", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = StrOption(name="mode_conteneur_actif", doc="Redefine value", default="non", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif1", doc="Redefine value", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/51redefine_value/xml/00-base.xml b/tests/dictionaries_old/51redefine_value/xml/00-base.xml
new file mode 100644
index 000000000..a1fad14f0
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_value/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/51redefine_value/xml/01-redefine.xml b/tests/dictionaries_old/51redefine_value/xml/01-redefine.xml
new file mode 100644
index 000000000..0ce435be7
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_value/xml/01-redefine.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ oui
+
+
+
+
diff --git a/tests/dictionaries/51redefine_value/yml/00-base.yml b/tests/dictionaries_old/51redefine_value/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_value/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_value/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_value/yml/01-redefine.yml b/tests/dictionaries_old/51redefine_value/yml/01-redefine.yml
similarity index 100%
rename from tests/dictionaries/51redefine_value/yml/01-redefine.yml
rename to tests/dictionaries_old/51redefine_value/yml/01-redefine.yml
diff --git a/tests/dictionaries/51redefine_remove_condition_filelist/__init__.py b/tests/dictionaries_old/51redefine_without_hidden/__init__.py
similarity index 100%
rename from tests/dictionaries/51redefine_remove_condition_filelist/__init__.py
rename to tests/dictionaries_old/51redefine_without_hidden/__init__.py
diff --git a/tests/dictionaries_old/51redefine_remove_check/makedict/after.json b/tests/dictionaries_old/51redefine_without_hidden/makedict/after.json
similarity index 100%
rename from tests/dictionaries_old/51redefine_remove_check/makedict/after.json
rename to tests/dictionaries_old/51redefine_without_hidden/makedict/after.json
diff --git a/tests/dictionaries_old/51redefine_remove_check/makedict/base.json b/tests/dictionaries_old/51redefine_without_hidden/makedict/base.json
similarity index 100%
rename from tests/dictionaries_old/51redefine_remove_check/makedict/base.json
rename to tests/dictionaries_old/51redefine_without_hidden/makedict/base.json
diff --git a/tests/dictionaries_old/51redefine_remove_check/makedict/before.json b/tests/dictionaries_old/51redefine_without_hidden/makedict/before.json
similarity index 100%
rename from tests/dictionaries_old/51redefine_remove_check/makedict/before.json
rename to tests/dictionaries_old/51redefine_without_hidden/makedict/before.json
diff --git a/tests/dictionaries_old/51redefine_without_hidden/result/rougail/00-base.yml b/tests/dictionaries_old/51redefine_without_hidden/result/rougail/00-base.yml
new file mode 100644
index 000000000..709c26c30
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_without_hidden/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Redefine hidden
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_without_hidden/result/rougail/01-redefine.yml b/tests/dictionaries_old/51redefine_without_hidden/result/rougail/01-redefine.yml
new file mode 100644
index 000000000..7c59b7f2b
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_without_hidden/result/rougail/01-redefine.yml
@@ -0,0 +1,4 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+version: '1.0'
diff --git a/tests/dictionaries_old/51redefine_without_hidden/tiramisu/base.py b/tests/dictionaries_old/51redefine_without_hidden/tiramisu/base.py
new file mode 100644
index 000000000..6fb051c88
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_without_hidden/tiramisu/base.py
@@ -0,0 +1,29 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51redefine_without_hidden/tiramisu/multi.py b/tests/dictionaries_old/51redefine_without_hidden/tiramisu/multi.py
new file mode 100644
index 000000000..a6e2a62b5
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_without_hidden/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/51redefine_without_hidden/xml/00-base.xml b/tests/dictionaries_old/51redefine_without_hidden/xml/00-base.xml
new file mode 100644
index 000000000..747f91891
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_without_hidden/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/51redefine_without_hidden/xml/01-redefine.xml b/tests/dictionaries_old/51redefine_without_hidden/xml/01-redefine.xml
new file mode 100644
index 000000000..8e94f5212
--- /dev/null
+++ b/tests/dictionaries_old/51redefine_without_hidden/xml/01-redefine.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/51redefine_without_hidden/yml/00-base.yml b/tests/dictionaries_old/51redefine_without_hidden/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51redefine_without_hidden/yml/00-base.yml
rename to tests/dictionaries_old/51redefine_without_hidden/yml/00-base.yml
diff --git a/tests/dictionaries/51redefine_without_hidden/yml/01-redefine.yml b/tests/dictionaries_old/51redefine_without_hidden/yml/01-redefine.yml
similarity index 100%
rename from tests/dictionaries/51redefine_without_hidden/yml/01-redefine.yml
rename to tests/dictionaries_old/51redefine_without_hidden/yml/01-redefine.yml
diff --git a/tests/dictionaries_old/51remove_fill/00-base.xml b/tests/dictionaries_old/51remove_fill/00-base.xml
deleted file mode 100644
index d99bdfb07..000000000
--- a/tests/dictionaries_old/51remove_fill/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- oui
-
-
- non
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/51remove_fill/01-base.xml b/tests/dictionaries_old/51remove_fill/01-base.xml
deleted file mode 100644
index f404ec788..000000000
--- a/tests/dictionaries_old/51remove_fill/01-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/51remove_fill/result/rougail/00-base.yml b/tests/dictionaries_old/51remove_fill/result/rougail/00-base.yml
new file mode 100644
index 000000000..ab500946e
--- /dev/null
+++ b/tests/dictionaries_old/51remove_fill/result/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default:
+ type: jinja
+ jinja: '{{ rougail.general.mode_conteneur_actif1 | calc_val }}'
+ mode_conteneur_actif1:
+ type: string
+ description: No change
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/51remove_fill/result/rougail/01-base.yml b/tests/dictionaries_old/51remove_fill/result/rougail/01-base.yml
new file mode 100644
index 000000000..7c59b7f2b
--- /dev/null
+++ b/tests/dictionaries_old/51remove_fill/result/rougail/01-base.yml
@@ -0,0 +1,4 @@
+general:
+ mode_conteneur_actif:
+ redefine: true
+version: '1.0'
diff --git a/tests/dictionaries_old/51remove_fill/tiramisu/base.py b/tests/dictionaries_old/51remove_fill/tiramisu/base.py
index a6a6a6f2b..158f117b5 100644
--- a/tests/dictionaries_old/51remove_fill/tiramisu/base.py
+++ b/tests/dictionaries_old/51remove_fill/tiramisu/base.py
@@ -1,18 +1,60 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(rougail.general.mode_conteneur_actif), '__internal_type': ParamValue(string), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/51remove_fill/tiramisu/multi.py b/tests/dictionaries_old/51remove_fill/tiramisu/multi.py
new file mode 100644
index 000000000..1e6d06443
--- /dev/null
+++ b/tests/dictionaries_old/51remove_fill/tiramisu/multi.py
@@ -0,0 +1,36 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
+option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "normal"}))
+option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])
diff --git a/tests/dictionaries_old/51remove_fill/xml/00-base.xml b/tests/dictionaries_old/51remove_fill/xml/00-base.xml
new file mode 100644
index 000000000..1c504605c
--- /dev/null
+++ b/tests/dictionaries_old/51remove_fill/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ oui
+
+
+ non
+
+
+
+
+
+ mode_conteneur_actif1
+ mode_conteneur_actif
+
+
+
diff --git a/tests/dictionaries_old/51remove_fill/xml/01-base.xml b/tests/dictionaries_old/51remove_fill/xml/01-base.xml
new file mode 100644
index 000000000..88d820af8
--- /dev/null
+++ b/tests/dictionaries_old/51remove_fill/xml/01-base.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/51remove_fill/yml/00-base.yml b/tests/dictionaries_old/51remove_fill/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/51remove_fill/yml/00-base.yml
rename to tests/dictionaries_old/51remove_fill/yml/00-base.yml
diff --git a/tests/dictionaries/51remove_fill/yml/01-base.yml b/tests/dictionaries_old/51remove_fill/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/51remove_fill/yml/01-base.yml
rename to tests/dictionaries_old/51remove_fill/yml/01-base.yml
diff --git a/tests/dictionaries_old/52exists_redefine/00-base.xml b/tests/dictionaries_old/52exists_redefine/00-base.xml
deleted file mode 100644
index 192bba8ab..000000000
--- a/tests/dictionaries_old/52exists_redefine/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/52exists_redefine/01-base.xml b/tests/dictionaries_old/52exists_redefine/01-base.xml
deleted file mode 100644
index 793e4d2eb..000000000
--- a/tests/dictionaries_old/52exists_redefine/01-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/52exists_redefine/result/rougail/00-base.yml b/tests/dictionaries_old/52exists_redefine/result/rougail/00-base.yml
new file mode 100644
index 000000000..2ae1c0b3c
--- /dev/null
+++ b/tests/dictionaries_old/52exists_redefine/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ type: string
+ description: Description
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/52exists_redefine/result/rougail/01-base.yml b/tests/dictionaries_old/52exists_redefine/result/rougail/01-base.yml
new file mode 100644
index 000000000..0d15d53d4
--- /dev/null
+++ b/tests/dictionaries_old/52exists_redefine/result/rougail/01-base.yml
@@ -0,0 +1,7 @@
+general:
+ mode_conteneur_actif:
+ description: New description
+ exists: false
+ redefine: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/52exists_redefine/tiramisu/base.py b/tests/dictionaries_old/52exists_redefine/tiramisu/base.py
index b1ec84995..c93112328 100644
--- a/tests/dictionaries_old/52exists_redefine/tiramisu/base.py
+++ b/tests/dictionaries_old/52exists_redefine/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="New description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "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_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries_old/52exists_redefine/tiramisu/multi.py b/tests/dictionaries_old/52exists_redefine/tiramisu/multi.py
new file mode 100644
index 000000000..3d05a8281
--- /dev/null
+++ b/tests/dictionaries_old/52exists_redefine/tiramisu/multi.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="New description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
+option_4 = StrOption(name="mode_conteneur_actif", doc="New description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
diff --git a/tests/dictionaries_old/52exists_redefine/xml/00-base.xml b/tests/dictionaries_old/52exists_redefine/xml/00-base.xml
new file mode 100644
index 000000000..8f66f70b8
--- /dev/null
+++ b/tests/dictionaries_old/52exists_redefine/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ oui
+
+
+
+
diff --git a/tests/dictionaries_old/52exists_redefine/xml/01-base.xml b/tests/dictionaries_old/52exists_redefine/xml/01-base.xml
new file mode 100644
index 000000000..8ad4e8617
--- /dev/null
+++ b/tests/dictionaries_old/52exists_redefine/xml/01-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries/52exists_redefine/yml/00-base.yml b/tests/dictionaries_old/52exists_redefine/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/52exists_redefine/yml/00-base.yml
rename to tests/dictionaries_old/52exists_redefine/yml/00-base.yml
diff --git a/tests/dictionaries/52exists_redefine/yml/01-base.yml b/tests/dictionaries_old/52exists_redefine/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/52exists_redefine/yml/01-base.yml
rename to tests/dictionaries_old/52exists_redefine/yml/01-base.yml
diff --git a/tests/dictionaries_old/60action_external/00-base.xml b/tests/dictionaries_old/60action_external/00-base.xml
deleted file mode 100644
index 849130906..000000000
--- a/tests/dictionaries_old/60action_external/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/60action_external/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60action_external/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 5beae659c..000000000
--- a/tests/dictionaries_old/60action_external/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- 0
-
-
- 0
-
-
-
-
-
- http://localhost/
- extra.test.calc_url
-
-
-
diff --git a/tests/dictionaries_old/60action_external/result/extra/00-base.yml b/tests/dictionaries_old/60action_external/result/extra/00-base.yml
new file mode 100644
index 000000000..0019b91e9
--- /dev/null
+++ b/tests/dictionaries_old/60action_external/result/extra/00-base.yml
@@ -0,0 +1,13 @@
+test:
+ delay:
+ type: number
+ description: délai en minutes avant lancement
+ default: 0
+ calc_url:
+ type: web_address
+ description: domain
+ hidden: true
+ default:
+ type: jinja
+ jinja: '{{ "http://localhost/" | calc_val }}'
+version: '1.0'
diff --git a/tests/dictionaries_old/60action_external/result/rougail/00-base.yml b/tests/dictionaries_old/60action_external/result/rougail/00-base.yml
new file mode 100644
index 000000000..1085cc1cc
--- /dev/null
+++ b/tests/dictionaries_old/60action_external/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60action_external/tiramisu/base.py b/tests/dictionaries_old/60action_external/tiramisu/base.py
index 10e2b1c50..6e3d76199 100644
--- a/tests/dictionaries_old/60action_external/tiramisu/base.py
+++ b/tests/dictionaries_old/60action_external/tiramisu/base.py
@@ -1,21 +1,63 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['extra.test.calc_url'] = "{{ \"http://localhost/\" | calc_val }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_6 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
-option_7 = URLOption(name="calc_url", doc="domain", default=Calculation(func.calc_val, Params((ParamValue("http://localhost/")))), allow_ip=True, allow_without_dot=True, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_7], properties=frozenset({"normal"}))
-option_4 = OptionDescription(name="extra", doc="extra", children=[option_5])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
+option_7 = URLOption(name="calc_url", doc="domain", default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(extra.test.calc_url), '__internal_type': ParamValue(web_address), '__internal_multi': ParamValue(False)})), allow_ip=True, allow_without_dot=True, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_5 = OptionDescription(name="test", doc="test", children=[option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries_old/60action_external/tiramisu/multi.py b/tests/dictionaries_old/60action_external/tiramisu/multi.py
new file mode 100644
index 000000000..377038444
--- /dev/null
+++ b/tests/dictionaries_old/60action_external/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_4 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+option_5 = URLOption(name="calc_url", doc="domain", default=Calculation(func.calc_val, Params((ParamValue("http://localhost/")))), allow_ip=True, allow_without_dot=True, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_3 = OptionDescription(name="test", doc="test", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12, optiondescription_13])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="general", doc="général", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_9 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+option_10 = URLOption(name="calc_url", doc="domain", default=Calculation(func.calc_val, Params((ParamValue("http://localhost/")))), allow_ip=True, allow_without_dot=True, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal"}))
+optiondescription_8 = OptionDescription(name="test", doc="test", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_8], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="2", doc="2", children=[optiondescription_15, optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_14])
diff --git a/tests/dictionaries_old/60action_external/xml/00-base.xml b/tests/dictionaries_old/60action_external/xml/00-base.xml
new file mode 100644
index 000000000..f0576995a
--- /dev/null
+++ b/tests/dictionaries_old/60action_external/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60action_external/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60action_external/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..f95a3843e
--- /dev/null
+++ b/tests/dictionaries_old/60action_external/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ 0
+
+
+ 0
+
+
+
+
+
+ http://localhost/
+ extra.test.calc_url
+
+
+
diff --git a/tests/dictionaries/60action_external/yml/00-base.yml b/tests/dictionaries_old/60action_external/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60action_external/yml/00-base.yml
rename to tests/dictionaries_old/60action_external/yml/00-base.yml
diff --git a/tests/dictionaries/60action_external/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60action_external/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60action_external/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60action_external/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries/51redefine_removecondition_nonautofreeze/__init__.py b/tests/dictionaries_old/60extra_basic/__init__.py
similarity index 100%
rename from tests/dictionaries/51redefine_removecondition_nonautofreeze/__init__.py
rename to tests/dictionaries_old/60extra_basic/__init__.py
diff --git a/tests/dictionaries_old/60extra_basic/makedict/after.json b/tests/dictionaries_old/60extra_basic/makedict/after.json
new file mode 100644
index 000000000..383ce0931
--- /dev/null
+++ b/tests/dictionaries_old/60extra_basic/makedict/after.json
@@ -0,0 +1,22 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.activer_ejabberd": {
+ "owner": "default",
+ "value": "non"
+ },
+ "extra.ejabberd.description": {
+ "owner": "default",
+ "value": "Exportation de la base de ejabberd"
+ },
+ "extra.ejabberd.day": {
+ "owner": "default",
+ "value": null
+ },
+ "extra.ejabberd.mode": {
+ "owner": "default",
+ "value": "pre"
+ }
+}
diff --git a/tests/dictionaries_old/60extra_basic/makedict/base.json b/tests/dictionaries_old/60extra_basic/makedict/base.json
new file mode 100644
index 000000000..242a818de
--- /dev/null
+++ b/tests/dictionaries_old/60extra_basic/makedict/base.json
@@ -0,0 +1,7 @@
+{
+ "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"
+}
diff --git a/tests/dictionaries_old/60extra_basic/makedict/before.json b/tests/dictionaries_old/60extra_basic/makedict/before.json
new file mode 100644
index 000000000..383ce0931
--- /dev/null
+++ b/tests/dictionaries_old/60extra_basic/makedict/before.json
@@ -0,0 +1,22 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.activer_ejabberd": {
+ "owner": "default",
+ "value": "non"
+ },
+ "extra.ejabberd.description": {
+ "owner": "default",
+ "value": "Exportation de la base de ejabberd"
+ },
+ "extra.ejabberd.day": {
+ "owner": "default",
+ "value": null
+ },
+ "extra.ejabberd.mode": {
+ "owner": "default",
+ "value": "pre"
+ }
+}
diff --git a/tests/dictionaries_old/60extra_basic/result/extra/00-base.yml b/tests/dictionaries_old/60extra_basic/result/extra/00-base.yml
new file mode 100644
index 000000000..535c9a803
--- /dev/null
+++ b/tests/dictionaries_old/60extra_basic/result/extra/00-base.yml
@@ -0,0 +1,30 @@
+ejabberd:
+ description:
+ type: string
+ mode: basic
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__activer_ejabberd, match="none",
+ mismatch="daily") }}'
+ params:
+ __activer_ejabberd:
+ type: variable
+ variable: __activer_ejabberd
+ propertyerror: false
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_basic/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_basic/result/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_basic/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_basic/tiramisu/base.py b/tests/dictionaries_old/60extra_basic/tiramisu/base.py
new file mode 100644
index 000000000..be87bc112
--- /dev/null
+++ b/tests/dictionaries_old/60extra_basic/tiramisu/base.py
@@ -0,0 +1,65 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"basic", "mandatory"}))
+option_8 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(extra.ejabberd.day), '__internal_type': ParamValue(choice), '__internal_multi': ParamValue(False)})), properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"basic"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries_old/60extra_basic/tiramisu/multi.py b/tests/dictionaries_old/60extra_basic/tiramisu/multi.py
new file mode 100644
index 000000000..1a6c830e4
--- /dev/null
+++ b/tests/dictionaries_old/60extra_basic/tiramisu/multi.py
@@ -0,0 +1,46 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"basic", "mandatory"}))
+option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"basic"}))
+optiondescription_17 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16, optiondescription_17])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_12 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"basic", "mandatory"}))
+option_13 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_10, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_14 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_12, option_13, option_14], properties=frozenset({"basic"}))
+optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"basic"}))
+optiondescription_18 = OptionDescription(name="2", doc="2", children=[optiondescription_19, optiondescription_20])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_18])
diff --git a/tests/dictionaries_old/60extra_basic/xml/00-base.xml b/tests/dictionaries_old/60extra_basic/xml/00-base.xml
new file mode 100644
index 000000000..cb25aa750
--- /dev/null
+++ b/tests/dictionaries_old/60extra_basic/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_basic/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_basic/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..6c643bda5
--- /dev/null
+++ b/tests/dictionaries_old/60extra_basic/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ Exportation de la base de ejabberd
+
+
+ none
+ daily
+ weekly
+ monthly
+ none
+
+
+ pre
+ pre
+ post
+
+
+
+
+
+ non
+ activer_ejabberd
+ none
+ daily
+ extra.ejabberd.day
+
+
+
diff --git a/tests/dictionaries/60extra_basic/yml/00-base.yml b/tests/dictionaries_old/60extra_basic/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_basic/yml/00-base.yml
rename to tests/dictionaries_old/60extra_basic/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_basic/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_basic/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_basic/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_basic/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries_old/60extra_externalspacecondition/00-base.xml b/tests/dictionaries_old/60extra_externalspacecondition/00-base.xml
deleted file mode 100644
index cd3769c6f..000000000
--- a/tests/dictionaries_old/60extra_externalspacecondition/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- no
-
-
- no
-
-
- False
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_externalspacecondition/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_externalspacecondition/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 52089bf34..000000000
--- a/tests/dictionaries_old/60extra_externalspacecondition/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
- Exportation de la base de ejabberd
-
-
-
- pre
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_externalspacecondition/extra_dirs/extra1/00-base.xml b/tests/dictionaries_old/60extra_externalspacecondition/extra_dirs/extra1/00-base.xml
deleted file mode 100644
index f5a5d7091..000000000
--- a/tests/dictionaries_old/60extra_externalspacecondition/extra_dirs/extra1/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- test
-
-
-
-
-
- non
- extra1.external
-
-
-
diff --git a/tests/dictionaries_old/60extra_externalspacecondition/result/extra/00-base.yml b/tests/dictionaries_old/60extra_externalspacecondition/result/extra/00-base.yml
new file mode 100644
index 000000000..47d02767d
--- /dev/null
+++ b/tests/dictionaries_old/60extra_externalspacecondition/result/extra/00-base.yml
@@ -0,0 +1,21 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default: none
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_externalspacecondition/result/extra1/00-base.yml b/tests/dictionaries_old/60extra_externalspacecondition/result/extra1/00-base.yml
new file mode 100644
index 000000000..91eae1a55
--- /dev/null
+++ b/tests/dictionaries_old/60extra_externalspacecondition/result/extra1/00-base.yml
@@ -0,0 +1,9 @@
+external:
+ description:
+ type: string
+ default: test
+ disabled:
+ type: jinja
+ jinja: '{% if __extra.ejabberd.description == "non" %}true{% else %}false{% endif
+ %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_externalspacecondition/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_externalspacecondition/result/rougail/00-base.yml
new file mode 100644
index 000000000..c166f473e
--- /dev/null
+++ b/tests/dictionaries_old/60extra_externalspacecondition/result/rougail/00-base.yml
@@ -0,0 +1,12 @@
+general:
+ description: général
+ my_var:
+ default: 'no'
+ my_var1:
+ hidden: true
+ default: 'no'
+ server_deployed:
+ type: boolean
+ hidden: true
+ default: false
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_externalspacecondition/tiramisu/base.py b/tests/dictionaries_old/60extra_externalspacecondition/tiramisu/base.py
index 55012c1ad..551e9080e 100644
--- a/tests/dictionaries_old/60extra_externalspacecondition/tiramisu/base.py
+++ b/tests/dictionaries_old/60extra_externalspacecondition/tiramisu/base.py
@@ -1,27 +1,39 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_5 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"hidden", "mandatory", "normal"}))
-option_3 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_5, todict=True, notraisepropertyerror=True), 'expected': ParamValue(True)}))}))
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4, option_5], properties=frozenset({"basic"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_5 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
option_9 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default="none", properties=frozenset({"mandatory", "normal"}))
option_10 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-option_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
-option_6 = OptionDescription(name="extra", doc="extra", children=[option_7])
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
option_13 = StrOption(name="description", doc="description", default="test", properties=frozenset({"mandatory", "normal"}))
-option_12 = OptionDescription(name="external", doc="external", children=[option_13], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_8, todict=True, notraisepropertyerror=True), 'expected': ParamValue("non")}))}))
-option_11 = OptionDescription(name="extra1", doc="extra1", children=[option_12])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_6, option_11])
+optiondescription_12 = OptionDescription(name="external", doc="external", children=[option_13], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="extra1", doc="extra1", children=[optiondescription_12], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6, optiondescription_11])
diff --git a/tests/dictionaries_old/60extra_externalspacecondition/tiramisu/multi.py b/tests/dictionaries_old/60extra_externalspacecondition/tiramisu/multi.py
new file mode 100644
index 000000000..d0b77a119
--- /dev/null
+++ b/tests/dictionaries_old/60extra_externalspacecondition/tiramisu/multi.py
@@ -0,0 +1,54 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_4 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"hidden", "mandatory", "normal"}))
+option_2 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_4, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
+option_3 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3, option_4], properties=frozenset({"basic"}))
+optiondescription_22 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"basic"}))
+option_6 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_7 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default="none", properties=frozenset({"mandatory", "normal"}))
+option_8 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_23 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_10 = StrOption(name="description", doc="description", default="test", properties=frozenset({"mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="external", doc="external", children=[option_10], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_6, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_24 = OptionDescription(name="extra1", doc="extra1", children=[optiondescription_9], properties=frozenset({"normal"}))
+optiondescription_21 = OptionDescription(name="1", doc="1", children=[optiondescription_22, optiondescription_23, optiondescription_24])
+option_14 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"hidden", "mandatory", "normal"}))
+option_12 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_14, notraisepropertyerror=True), 'expected': ParamValue(True)}), func.calc_value_property_help)}))
+option_13 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_11 = OptionDescription(name="general", doc="général", children=[option_12, option_13, option_14], properties=frozenset({"basic"}))
+optiondescription_26 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_11], properties=frozenset({"basic"}))
+option_16 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_17 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default="none", properties=frozenset({"mandatory", "normal"}))
+option_18 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_15 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_16, option_17, option_18], properties=frozenset({"normal"}))
+optiondescription_27 = OptionDescription(name="extra", doc="extra", children=[optiondescription_15], properties=frozenset({"normal"}))
+option_20 = StrOption(name="description", doc="description", default="test", properties=frozenset({"mandatory", "normal"}))
+optiondescription_19 = OptionDescription(name="external", doc="external", children=[option_20], properties=frozenset({"normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_16, notraisepropertyerror=True), 'expected': ParamValue("non")}), func.calc_value_property_help)}))
+optiondescription_28 = OptionDescription(name="extra1", doc="extra1", children=[optiondescription_19], properties=frozenset({"normal"}))
+optiondescription_25 = OptionDescription(name="2", doc="2", children=[optiondescription_26, optiondescription_27, optiondescription_28])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_21, optiondescription_25])
diff --git a/tests/dictionaries_old/60extra_externalspacecondition/xml/00-base.xml b/tests/dictionaries_old/60extra_externalspacecondition/xml/00-base.xml
new file mode 100644
index 000000000..4eb8ae638
--- /dev/null
+++ b/tests/dictionaries_old/60extra_externalspacecondition/xml/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ no
+
+
+ no
+
+
+ False
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_externalspacecondition/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_externalspacecondition/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..c6d59a192
--- /dev/null
+++ b/tests/dictionaries_old/60extra_externalspacecondition/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ Exportation de la base de ejabberd
+
+
+ none
+ daily
+ weekly
+ monthly
+ none
+
+
+ pre
+ pre
+ post
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_externalspacecondition/xml/extra_dirs/extra1/00-base.xml b/tests/dictionaries_old/60extra_externalspacecondition/xml/extra_dirs/extra1/00-base.xml
new file mode 100644
index 000000000..5eb7b87eb
--- /dev/null
+++ b/tests/dictionaries_old/60extra_externalspacecondition/xml/extra_dirs/extra1/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ test
+
+
+
+
+
+ non
+ extra1.external
+
+
+
diff --git a/tests/dictionaries/60extra_externalspacecondition/yml/00-base.yml b/tests/dictionaries_old/60extra_externalspacecondition/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_externalspacecondition/yml/00-base.yml
rename to tests/dictionaries_old/60extra_externalspacecondition/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_externalspacecondition/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_externalspacecondition/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_externalspacecondition/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_externalspacecondition/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries/60extra_externalspacecondition/yml/extra_dirs/extra1/00-base.yml b/tests/dictionaries_old/60extra_externalspacecondition/yml/extra_dirs/extra1/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_externalspacecondition/yml/extra_dirs/extra1/00-base.yml
rename to tests/dictionaries_old/60extra_externalspacecondition/yml/extra_dirs/extra1/00-base.yml
diff --git a/tests/dictionaries_old/60extra_group/00-base.xml b/tests/dictionaries_old/60extra_group/00-base.xml
deleted file mode 100644
index 7350eda1c..000000000
--- a/tests/dictionaries_old/60extra_group/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- /etc/mailname
- /etc/mailname2
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_group/__init__.py b/tests/dictionaries_old/60extra_group/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/60extra_group/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_group/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 91f69946d..000000000
--- a/tests/dictionaries_old/60extra_group/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- test
-
-
- pre
-
-
-
-
-
- mode
-
-
-
diff --git a/tests/dictionaries_old/60extra_group/makedict/after.json b/tests/dictionaries_old/60extra_group/makedict/after.json
deleted file mode 100644
index 0295b3e42..000000000
--- a/tests/dictionaries_old/60extra_group/makedict/after.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.activer_ejabberd": {
- "owner": "default",
- "value": "non"
- },
- "extra.ejabberd.description.description": {
- "owner": "default",
- "value": [
- "test"
- ]
- },
- "extra.ejabberd.description.mode": {
- "owner": [
- "default"
- ],
- "value": [
- "pre"
- ]
- },
- "services.test.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test.activate": {
- "owner": "default",
- "value": true
- },
- "services.test.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries_old/60extra_group/makedict/base.json b/tests/dictionaries_old/60extra_group/makedict/base.json
deleted file mode 100644
index b67b1029d..000000000
--- a/tests/dictionaries_old/60extra_group/makedict/base.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "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.name": "/etc/mailname",
- "services.test.files.mailname.activate": true,
- "services.test.files.mailname2.name": "/etc/mailname2",
- "services.test.files.mailname2.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
-}
diff --git a/tests/dictionaries_old/60extra_group/makedict/before.json b/tests/dictionaries_old/60extra_group/makedict/before.json
deleted file mode 100644
index 0295b3e42..000000000
--- a/tests/dictionaries_old/60extra_group/makedict/before.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.activer_ejabberd": {
- "owner": "default",
- "value": "non"
- },
- "extra.ejabberd.description.description": {
- "owner": "default",
- "value": [
- "test"
- ]
- },
- "extra.ejabberd.description.mode": {
- "owner": [
- "default"
- ],
- "value": [
- "pre"
- ]
- },
- "services.test.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test.activate": {
- "owner": "default",
- "value": true
- },
- "services.test.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries_old/60extra_group/result/etc/mailname b/tests/dictionaries_old/60extra_group/result/etc/mailname
deleted file mode 100644
index dc34cc5b0..000000000
--- a/tests/dictionaries_old/60extra_group/result/etc/mailname
+++ /dev/null
@@ -1,11 +0,0 @@
-contain test
-1
-leader: test
-follower: pre
-supeq
-sup
-diff
-testpre
-pretest
-leader2: test
-follower2: pre
diff --git a/tests/dictionaries_old/60extra_group/result/etc/mailname2 b/tests/dictionaries_old/60extra_group/result/etc/mailname2
deleted file mode 100644
index dc34cc5b0..000000000
--- a/tests/dictionaries_old/60extra_group/result/etc/mailname2
+++ /dev/null
@@ -1,11 +0,0 @@
-contain test
-1
-leader: test
-follower: pre
-supeq
-sup
-diff
-testpre
-pretest
-leader2: test
-follower2: pre
diff --git a/tests/dictionaries_old/60extra_group/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/60extra_group/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 7a8d00f42..000000000
--- a/tests/dictionaries_old/60extra_group/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
-z /etc/mailname - - - - -
-C /etc/mailname2 0644 root root - /usr/local/lib/etc/mailname2
-z /etc/mailname2 - - - - -
diff --git a/tests/dictionaries_old/60extra_group/tiramisu/base.py b/tests/dictionaries_old/60extra_group/tiramisu/base.py
deleted file mode 100644
index d7619f5eb..000000000
--- a/tests/dictionaries_old/60extra_group/tiramisu/base.py
+++ /dev/null
@@ -1,37 +0,0 @@
-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 tiramisu4 import *
-except:
- from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_8 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory"}))
-option_9 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-option_7 = Leadership(name="description", doc="description", children=[option_8, option_9], properties=frozenset({"normal"}))
-option_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7], properties=frozenset({"normal"}))
-option_5 = OptionDescription(name="extra", doc="extra", children=[option_6])
-option_14 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = OptionDescription(name="mailname", doc="mailname", children=[option_14, option_15])
-option_13.impl_set_information('source', "mailname")
-option_17 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_18 = BoolOption(name="activate", doc="activate", default=True)
-option_16 = OptionDescription(name="mailname2", doc="mailname2", children=[option_17, option_18])
-option_16.impl_set_information('engine', "jinja")
-option_16.impl_set_information('source', "mailname2")
-option_12 = OptionDescription(name="files", doc="files", children=[option_13, option_16])
-option_19 = BoolOption(name="activate", doc="activate", default=True)
-option_20 = BoolOption(name="manage", doc="manage", default=True)
-option_11 = OptionDescription(name="test", doc="test", children=[option_12, option_19, option_20])
-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_old/60extra_group/tmpl/mailname b/tests/dictionaries_old/60extra_group/tmpl/mailname
deleted file mode 100644
index de1500e6c..000000000
--- a/tests/dictionaries_old/60extra_group/tmpl/mailname
+++ /dev/null
@@ -1,35 +0,0 @@
-%if 'test' in %%extra.ejabberd.description
-contain test
-%end if
-%%len(%%extra.ejabberd.description)
-%if 'a' in %%extra.ejabberd.description
-contain a
-%end if
-%for %%description in %%extra.ejabberd.description
-leader: %%description
-follower: %%description.mode
-%if %%description <= %%description.mode
-infeq
-%end if
-%if %%description >= %%description.mode
-supeq
-%end if
-%if %%description < %%description.mode
-inf
-%end if
-%if %%description > %%description.mode
-sup
-%end if
-%if %%description == %%description.mode
-eq
-%end if
-%if %%description != %%description.mode
-diff
-%end if
-%set %%var = %%description + %%description.mode
-%%var
-%set %%var = %%description.mode + %%description
-%%var
-%end for
-leader2: %%extra.ejabberd.description[0]
-follower2: %%extra.ejabberd.description[0].mode
diff --git a/tests/dictionaries_old/60extra_group/tmpl/mailname2 b/tests/dictionaries_old/60extra_group/tmpl/mailname2
deleted file mode 100644
index 589c548e7..000000000
--- a/tests/dictionaries_old/60extra_group/tmpl/mailname2
+++ /dev/null
@@ -1,33 +0,0 @@
-{% if 'test' in extra.ejabberd.description -%}
-contain test
-{% endif -%}
-{{ extra.ejabberd.description|length }}
-{% if 'a' in extra.ejabberd.description -%}
-contain a
-{% endif -%}
-{% for description in extra.ejabberd.description -%}
-leader: {{ description }}
-follower: {{ description.mode }}
-{% if description <= description.mode -%}
-infeq
-{% endif -%}
-{% if description >= description.mode -%}
-supeq
-{% endif -%}
-{% if description < description.mode -%}
-inf
-{% endif -%}
-{% if description > description.mode -%}
-sup
-{% endif -%}
-{% if description == description.mode -%}
-eq
-{% endif -%}
-{% if description != description.mode -%}
-diff
-{% endif -%}
-{{ description + description.mode }}
-{{ description.mode + description }}
-{% endfor -%}
-leader2: {{ extra.ejabberd.description[0] }}
-follower2: {{ extra.ejabberd.description[0].mode }}
diff --git a/tests/dictionaries_old/60extra_group_name/00-base.xml b/tests/dictionaries_old/60extra_group_name/00-base.xml
deleted file mode 100644
index 7350eda1c..000000000
--- a/tests/dictionaries_old/60extra_group_name/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- /etc/mailname
- /etc/mailname2
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_group_name/__init__.py b/tests/dictionaries_old/60extra_group_name/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/60extra_group_name/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_group_name/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 8b03d0769..000000000
--- a/tests/dictionaries_old/60extra_group_name/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- test
-
-
- pre
-
-
-
-
-
- mode
-
-
-
diff --git a/tests/dictionaries_old/60extra_group_name/makedict/after.json b/tests/dictionaries_old/60extra_group_name/makedict/after.json
deleted file mode 100644
index 706146a93..000000000
--- a/tests/dictionaries_old/60extra_group_name/makedict/after.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.activer_ejabberd": {
- "owner": "default",
- "value": "non"
- },
- "extra.ejabberd.new_name.description": {
- "owner": "default",
- "value": [
- "test"
- ]
- },
- "extra.ejabberd.new_name.mode": {
- "owner": [
- "default"
- ],
- "value": [
- "pre"
- ]
- },
- "services.test.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test.activate": {
- "owner": "default",
- "value": true
- },
- "services.test.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries_old/60extra_group_name/makedict/base.json b/tests/dictionaries_old/60extra_group_name/makedict/base.json
deleted file mode 100644
index 5e9f4d0fc..000000000
--- a/tests/dictionaries_old/60extra_group_name/makedict/base.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": "non",
- "rougail.general.activer_ejabberd": "non",
- "extra.ejabberd.new_name.description": [
- {
- "extra.ejabberd.new_name.description": "test",
- "extra.ejabberd.new_name.mode": "pre"
- }
- ],
- "services.test.files.mailname.name": "/etc/mailname",
- "services.test.files.mailname.activate": true,
- "services.test.files.mailname2.name": "/etc/mailname2",
- "services.test.files.mailname2.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
-}
diff --git a/tests/dictionaries_old/60extra_group_name/makedict/before.json b/tests/dictionaries_old/60extra_group_name/makedict/before.json
deleted file mode 100644
index 706146a93..000000000
--- a/tests/dictionaries_old/60extra_group_name/makedict/before.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "rougail.general.mode_conteneur_actif": {
- "owner": "default",
- "value": "non"
- },
- "rougail.general.activer_ejabberd": {
- "owner": "default",
- "value": "non"
- },
- "extra.ejabberd.new_name.description": {
- "owner": "default",
- "value": [
- "test"
- ]
- },
- "extra.ejabberd.new_name.mode": {
- "owner": [
- "default"
- ],
- "value": [
- "pre"
- ]
- },
- "services.test.files.mailname.name": {
- "owner": "default",
- "value": "/etc/mailname"
- },
- "services.test.files.mailname.activate": {
- "owner": "default",
- "value": true
- },
- "services.test.files.mailname2.name": {
- "owner": "default",
- "value": "/etc/mailname2"
- },
- "services.test.files.mailname2.activate": {
- "owner": "default",
- "value": true
- },
- "services.test.activate": {
- "owner": "default",
- "value": true
- },
- "services.test.manage": {
- "owner": "default",
- "value": true
- }
-}
diff --git a/tests/dictionaries_old/60extra_group_name/result/etc/mailname b/tests/dictionaries_old/60extra_group_name/result/etc/mailname
deleted file mode 100644
index dc34cc5b0..000000000
--- a/tests/dictionaries_old/60extra_group_name/result/etc/mailname
+++ /dev/null
@@ -1,11 +0,0 @@
-contain test
-1
-leader: test
-follower: pre
-supeq
-sup
-diff
-testpre
-pretest
-leader2: test
-follower2: pre
diff --git a/tests/dictionaries_old/60extra_group_name/result/etc/mailname2 b/tests/dictionaries_old/60extra_group_name/result/etc/mailname2
deleted file mode 100644
index dc34cc5b0..000000000
--- a/tests/dictionaries_old/60extra_group_name/result/etc/mailname2
+++ /dev/null
@@ -1,11 +0,0 @@
-contain test
-1
-leader: test
-follower: pre
-supeq
-sup
-diff
-testpre
-pretest
-leader2: test
-follower2: pre
diff --git a/tests/dictionaries_old/60extra_group_name/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/60extra_group_name/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 7a8d00f42..000000000
--- a/tests/dictionaries_old/60extra_group_name/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
-z /etc/mailname - - - - -
-C /etc/mailname2 0644 root root - /usr/local/lib/etc/mailname2
-z /etc/mailname2 - - - - -
diff --git a/tests/dictionaries_old/60extra_group_name/tiramisu/base.py b/tests/dictionaries_old/60extra_group_name/tiramisu/base.py
deleted file mode 100644
index b4ebf7692..000000000
--- a/tests/dictionaries_old/60extra_group_name/tiramisu/base.py
+++ /dev/null
@@ -1,37 +0,0 @@
-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 tiramisu4 import *
-except:
- from tiramisu import *
-option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_8 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory"}))
-option_9 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
-option_7 = Leadership(name="new_name", doc="new_name", children=[option_8, option_9], properties=frozenset({"normal"}))
-option_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7], properties=frozenset({"normal"}))
-option_5 = OptionDescription(name="extra", doc="extra", children=[option_6])
-option_14 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = OptionDescription(name="mailname", doc="mailname", children=[option_14, option_15])
-option_13.impl_set_information('source', "mailname")
-option_17 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_18 = BoolOption(name="activate", doc="activate", default=True)
-option_16 = OptionDescription(name="mailname2", doc="mailname2", children=[option_17, option_18])
-option_16.impl_set_information('engine', "jinja")
-option_16.impl_set_information('source', "mailname2")
-option_12 = OptionDescription(name="files", doc="files", children=[option_13, option_16])
-option_19 = BoolOption(name="activate", doc="activate", default=True)
-option_20 = BoolOption(name="manage", doc="manage", default=True)
-option_11 = OptionDescription(name="test", doc="test", children=[option_12, option_19, option_20])
-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_old/60extra_group_name/tmpl/mailname b/tests/dictionaries_old/60extra_group_name/tmpl/mailname
deleted file mode 100644
index 23cbe10eb..000000000
--- a/tests/dictionaries_old/60extra_group_name/tmpl/mailname
+++ /dev/null
@@ -1,35 +0,0 @@
-%if 'test' in %%extra.ejabberd.new_name
-contain test
-%end if
-%%len(%%extra.ejabberd.new_name)
-%if 'a' in %%extra.ejabberd.new_name
-contain a
-%end if
-%for %%description in %%extra.ejabberd.new_name
-leader: %%description
-follower: %%description.mode
-%if %%description <= %%description.mode
-infeq
-%end if
-%if %%description >= %%description.mode
-supeq
-%end if
-%if %%description < %%description.mode
-inf
-%end if
-%if %%description > %%description.mode
-sup
-%end if
-%if %%description == %%description.mode
-eq
-%end if
-%if %%description != %%description.mode
-diff
-%end if
-%set %%var = %%description + %%description.mode
-%%var
-%set %%var = %%description.mode + %%description
-%%var
-%end for
-leader2: %%extra.ejabberd.new_name[0].description
-follower2: %%extra.ejabberd.new_name[0].mode
diff --git a/tests/dictionaries_old/60extra_group_name/tmpl/mailname2 b/tests/dictionaries_old/60extra_group_name/tmpl/mailname2
deleted file mode 100644
index 4860700df..000000000
--- a/tests/dictionaries_old/60extra_group_name/tmpl/mailname2
+++ /dev/null
@@ -1,33 +0,0 @@
-{% if 'test' in extra.ejabberd.new_name -%}
-contain test
-{% endif -%}
-{{ extra.ejabberd.new_name |length }}
-{% if 'a' in extra.ejabberd.new_name -%}
-contain a
-{% endif -%}
-{% for description in extra.ejabberd.new_name -%}
-leader: {{ description }}
-follower: {{ description.mode }}
-{% if description <= description.mode -%}
-infeq
-{% endif -%}
-{% if description >= description.mode -%}
-supeq
-{% endif -%}
-{% if description < description.mode -%}
-inf
-{% endif -%}
-{% if description > description.mode -%}
-sup
-{% endif -%}
-{% if description == description.mode -%}
-eq
-{% endif -%}
-{% if description != description.mode -%}
-diff
-{% endif -%}
-{{ description + description.mode }}
-{{ description.mode + description }}
-{% endfor -%}
-leader2: {{ extra.ejabberd.new_name[0].description }}
-follower2: {{ extra.ejabberd.new_name[0].mode }}
diff --git a/tests/dictionaries_old/60extra_help/00-base.xml b/tests/dictionaries_old/60extra_help/00-base.xml
deleted file mode 100644
index 5299dde1a..000000000
--- a/tests/dictionaries_old/60extra_help/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
- /etc/mailname
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_help/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_help/extra_dirs/extra/00-base.xml
deleted file mode 100644
index dff47ea37..000000000
--- a/tests/dictionaries_old/60extra_help/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- Exportation de la base de ejabberd
-
-
-
- pre
-
-
-
-
-
- non
- activer_ejabberd
- none
- daily
- extra.ejabberd.day
-
-
-
diff --git a/tests/dictionaries_old/60extra_help/makedict/after.json b/tests/dictionaries_old/60extra_help/makedict/after.json
index 6cf540ce3..4d90e3cdf 100644
--- a/tests/dictionaries_old/60extra_help/makedict/after.json
+++ b/tests/dictionaries_old/60extra_help/makedict/after.json
@@ -19,19 +19,23 @@
"owner": "default",
"value": "pre"
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/60extra_help/makedict/base.json b/tests/dictionaries_old/60extra_help/makedict/base.json
index 37a6c4d4d..64b003ac6 100644
--- a/tests/dictionaries_old/60extra_help/makedict/base.json
+++ b/tests/dictionaries_old/60extra_help/makedict/base.json
@@ -4,8 +4,9 @@
"extra.ejabberd.description": "Exportation de la base de ejabberd",
"extra.ejabberd.day": null,
"extra.ejabberd.mode": "pre",
- "services.test.files.mailname.name": "/etc/mailname",
- "services.test.files.mailname.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.mailname.name": "/etc/mailname",
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/60extra_help/makedict/before.json b/tests/dictionaries_old/60extra_help/makedict/before.json
index 6cf540ce3..4d90e3cdf 100644
--- a/tests/dictionaries_old/60extra_help/makedict/before.json
+++ b/tests/dictionaries_old/60extra_help/makedict/before.json
@@ -19,19 +19,23 @@
"owner": "default",
"value": "pre"
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/60extra_help/result/extra/00-base.yml b/tests/dictionaries_old/60extra_help/result/extra/00-base.yml
new file mode 100644
index 000000000..d14b84e1b
--- /dev/null
+++ b/tests/dictionaries_old/60extra_help/result/extra/00-base.yml
@@ -0,0 +1,30 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ help: Test help
+ mandatory: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__activer_ejabberd, match="none",
+ mismatch="daily") }}'
+ params:
+ __activer_ejabberd:
+ type: variable
+ variable: __activer_ejabberd
+ propertyerror: false
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_help/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_help/result/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_help/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_help/result/services/00-base.yml b/tests/dictionaries_old/60extra_help/result/services/00-base.yml
new file mode 100644
index 000000000..e25233253
--- /dev/null
+++ b/tests/dictionaries_old/60extra_help/result/services/00-base.yml
@@ -0,0 +1,4 @@
+test.service:
+ files:
+ /etc/mailname: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_help/tiramisu/base.py b/tests/dictionaries_old/60extra_help/tiramisu/base.py
index 7383b6a87..5ddbbbb0f 100644
--- a/tests/dictionaries_old/60extra_help/tiramisu/base.py
+++ b/tests/dictionaries_old/60extra_help/tiramisu/base.py
@@ -1,33 +1,76 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_8 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_8 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(extra.ejabberd.day), '__internal_type': ParamValue(choice), '__internal_multi': ParamValue(False)})), properties=frozenset({"mandatory", "normal"}))
option_8.impl_set_information('help', "Test help")
option_9 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-option_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
-option_5 = OptionDescription(name="extra", doc="extra", children=[option_6])
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
option_14 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = OptionDescription(name="mailname", doc="mailname", children=[option_14, option_15])
-option_13.impl_set_information('source', "mailname")
-option_12 = OptionDescription(name="files", doc="files", children=[option_13])
+option_15 = FilenameOption(name="source", doc="source", default="/etc/mailname")
option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_17 = BoolOption(name="manage", doc="manage", default=True)
-option_11 = OptionDescription(name="test", doc="test", children=[option_12, option_16, option_17])
-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])
+optiondescription_13 = OptionDescription(name="mailname", doc="mailname", children=[option_14, option_15, option_16])
+optiondescription_12 = OptionDescription(name="files", doc="files", children=[optiondescription_13])
+option_17 = BoolOption(name="activate", doc="activate", default=True)
+option_18 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_11 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_12, option_17, option_18])
+optiondescription_11.impl_set_information('type', "service")
+optiondescription_10 = OptionDescription(name="services", doc="services", children=[optiondescription_11], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5, optiondescription_10])
diff --git a/tests/dictionaries_old/60extra_help/tiramisu/multi.py b/tests/dictionaries_old/60extra_help/tiramisu/multi.py
new file mode 100644
index 000000000..5d5e0b29c
--- /dev/null
+++ b/tests/dictionaries_old/60extra_help/tiramisu/multi.py
@@ -0,0 +1,68 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_30 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_6.impl_set_information('help', "Test help")
+option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_31 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
+option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_20 = StrOption(name="source", doc="source", default="mailname")
+option_18 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
+optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_21 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_33 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_21])
+optiondescription_33.impl_set_information('type', "service")
+optiondescription_32 = OptionDescription(name="services", doc="services", children=[optiondescription_33], properties=frozenset({"hidden"}))
+optiondescription_29 = OptionDescription(name="1", doc="1", children=[optiondescription_30, optiondescription_31, optiondescription_32])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_35 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_12 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_13 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_10, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_13.impl_set_information('help', "Test help")
+option_14 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_36 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_26 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_27 = StrOption(name="source", doc="source", default="mailname")
+option_25 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_24 = OptionDescription(name="mailname", doc="mailname", children=[option_26, option_27, option_25])
+optiondescription_23 = OptionDescription(name="files", doc="files", children=[optiondescription_24])
+option_22 = BoolOption(name="activate", doc="activate", default=True)
+option_28 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_38 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_23, option_22, option_28])
+optiondescription_38.impl_set_information('type', "service")
+optiondescription_37 = OptionDescription(name="services", doc="services", children=[optiondescription_38], properties=frozenset({"hidden"}))
+optiondescription_34 = OptionDescription(name="2", doc="2", children=[optiondescription_35, optiondescription_36, optiondescription_37])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_29, optiondescription_34])
diff --git a/tests/dictionaries_old/60extra_help/xml/00-base.xml b/tests/dictionaries_old/60extra_help/xml/00-base.xml
new file mode 100644
index 000000000..1aebf03a1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_help/xml/00-base.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ /etc/mailname
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_help/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_help/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..e55bb2f1d
--- /dev/null
+++ b/tests/dictionaries_old/60extra_help/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ Exportation de la base de ejabberd
+
+
+ none
+ daily
+ weekly
+ monthly
+ none
+
+
+ pre
+ pre
+ post
+
+
+
+
+
+ non
+ activer_ejabberd
+ none
+ daily
+ extra.ejabberd.day
+
+
+
diff --git a/tests/dictionaries/60extra_help/yml/00-base.yml b/tests/dictionaries_old/60extra_help/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_help/yml/00-base.yml
rename to tests/dictionaries_old/60extra_help/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_help/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_help/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_help/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_help/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries/61extra_auto_freeze/__init__.py b/tests/dictionaries_old/60extra_leadership/__init__.py
similarity index 100%
rename from tests/dictionaries/61extra_auto_freeze/__init__.py
rename to tests/dictionaries_old/60extra_leadership/__init__.py
diff --git a/tests/dictionaries_old/60extra_leadership/makedict/after.json b/tests/dictionaries_old/60extra_leadership/makedict/after.json
new file mode 100644
index 000000000..fc88064cd
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership/makedict/after.json
@@ -0,0 +1,56 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.activer_ejabberd": {
+ "owner": "default",
+ "value": "non"
+ },
+ "extra.ejabberd.leadership.description": {
+ "owner": "default",
+ "value": [
+ "test"
+ ]
+ },
+ "extra.ejabberd.leadership.mode": {
+ "owner": [
+ "default"
+ ],
+ "value": [
+ "pre"
+ ]
+ },
+ "services.test_service.files.mailname.name": {
+ "owner": "default",
+ "value": "/etc/mailname"
+ },
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.files.mailname2.name": {
+ "owner": "default",
+ "value": "/etc/mailname2"
+ },
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.manage": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries_old/60extra_leadership/makedict/base.json b/tests/dictionaries_old/60extra_leadership/makedict/base.json
new file mode 100644
index 000000000..2f4e5aa56
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership/makedict/base.json
@@ -0,0 +1,18 @@
+{
+ "rougail.general.mode_conteneur_actif": "non",
+ "rougail.general.activer_ejabberd": "non",
+ "extra.ejabberd.leadership.description": [
+ {
+ "extra.ejabberd.leadership.description": "test",
+ "extra.ejabberd.leadership.mode": "pre"
+ }
+ ],
+ "services.test_service.files.mailname.name": "/etc/mailname",
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.files.mailname2.name": "/etc/mailname2",
+ "services.test_service.files.mailname2.source": "mailname2",
+ "services.test_service.files.mailname2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
+}
diff --git a/tests/dictionaries_old/60extra_leadership/makedict/before.json b/tests/dictionaries_old/60extra_leadership/makedict/before.json
new file mode 100644
index 000000000..fc88064cd
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership/makedict/before.json
@@ -0,0 +1,56 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.activer_ejabberd": {
+ "owner": "default",
+ "value": "non"
+ },
+ "extra.ejabberd.leadership.description": {
+ "owner": "default",
+ "value": [
+ "test"
+ ]
+ },
+ "extra.ejabberd.leadership.mode": {
+ "owner": [
+ "default"
+ ],
+ "value": [
+ "pre"
+ ]
+ },
+ "services.test_service.files.mailname.name": {
+ "owner": "default",
+ "value": "/etc/mailname"
+ },
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.files.mailname2.name": {
+ "owner": "default",
+ "value": "/etc/mailname2"
+ },
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.manage": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries_old/60extra_leadership/result/extra/00-base.yml b/tests/dictionaries_old/60extra_leadership/result/extra/00-base.yml
new file mode 100644
index 000000000..eacf9828e
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership/result/extra/00-base.yml
@@ -0,0 +1,13 @@
+ejabberd:
+ leadership:
+ type: leadership
+ _description: description
+ description:
+ type: string
+ multi: true
+ default:
+ - test
+ mode:
+ type: string
+ default: pre
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_leadership/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_leadership/result/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_leadership/result/services/00-base.yml b/tests/dictionaries_old/60extra_leadership/result/services/00-base.yml
new file mode 100644
index 000000000..01ae40493
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/mailname: {}
+ /etc/mailname2:
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_leadership/tiramisu/base.py b/tests/dictionaries_old/60extra_leadership/tiramisu/base.py
new file mode 100644
index 000000000..f9552c000
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership/tiramisu/base.py
@@ -0,0 +1,50 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode", doc="mode", multi=True, default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = Leadership(name="leadership", doc="description", children=[option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_14 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_15 = FilenameOption(name="source", doc="source", default="/etc/mailname")
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_13 = OptionDescription(name="mailname", doc="mailname", children=[option_14, option_15, option_16])
+option_18 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_19 = FilenameOption(name="source", doc="source", default="/etc/mailname2")
+option_20 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_17 = OptionDescription(name="mailname2", doc="mailname2", children=[option_18, option_19, option_20])
+optiondescription_17.impl_set_information('engine', "jinja")
+optiondescription_12 = OptionDescription(name="files", doc="files", children=[optiondescription_13, optiondescription_17])
+option_21 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_11 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_12, option_21, option_22])
+optiondescription_11.impl_set_information('type', "service")
+optiondescription_10 = OptionDescription(name="services", doc="services", children=[optiondescription_11], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5, optiondescription_10])
diff --git a/tests/dictionaries_old/60extra_leadership/tiramisu/multi.py b/tests/dictionaries_old/60extra_leadership/tiramisu/multi.py
new file mode 100644
index 000000000..b434f9136
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership/tiramisu/multi.py
@@ -0,0 +1,76 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_38 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_6 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = Leadership(name="leadership", doc="description", children=[option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_39 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
+option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_20 = StrOption(name="source", doc="source", default="mailname")
+option_18 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
+option_23 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_24 = StrOption(name="source", doc="source", default="mailname2")
+option_22 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_21 = OptionDescription(name="mailname2", doc="mailname2", children=[option_23, option_24, option_22])
+optiondescription_21.impl_set_information('engine', "jinja")
+optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17, optiondescription_21])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_25 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_41 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_25])
+optiondescription_41.impl_set_information('type', "service")
+optiondescription_40 = OptionDescription(name="services", doc="services", children=[optiondescription_41], properties=frozenset({"hidden"}))
+optiondescription_37 = OptionDescription(name="1", doc="1", children=[optiondescription_38, optiondescription_39, optiondescription_40])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_43 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_13 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_12 = Leadership(name="leadership", doc="description", children=[option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_44 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_30 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_31 = StrOption(name="source", doc="source", default="mailname")
+option_29 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_28 = OptionDescription(name="mailname", doc="mailname", children=[option_30, option_31, option_29])
+option_34 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_35 = StrOption(name="source", doc="source", default="mailname2")
+option_33 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_32 = OptionDescription(name="mailname2", doc="mailname2", children=[option_34, option_35, option_33])
+optiondescription_32.impl_set_information('engine', "jinja")
+optiondescription_27 = OptionDescription(name="files", doc="files", children=[optiondescription_28, optiondescription_32])
+option_26 = BoolOption(name="activate", doc="activate", default=True)
+option_36 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_46 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_27, option_26, option_36])
+optiondescription_46.impl_set_information('type', "service")
+optiondescription_45 = OptionDescription(name="services", doc="services", children=[optiondescription_46], properties=frozenset({"hidden"}))
+optiondescription_42 = OptionDescription(name="2", doc="2", children=[optiondescription_43, optiondescription_44, optiondescription_45])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_37, optiondescription_42])
diff --git a/tests/dictionaries_old/60extra_leadership/tmpl/mailname b/tests/dictionaries_old/60extra_leadership/tmpl/mailname
new file mode 100644
index 000000000..c98064496
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership/tmpl/mailname
@@ -0,0 +1,35 @@
+%if 'test' in %%extra.ejabberd.leadership.description
+contain test
+%end if
+%%len(%%extra.ejabberd.leadership.description)
+%if 'a' in %%extra.ejabberd.leadership.description
+contain a
+%end if
+%for %%description in %%extra.ejabberd.leadership.description
+leader: %%description
+follower: %%description.mode
+%if %%description <= %%description.mode
+infeq
+%end if
+%if %%description >= %%description.mode
+supeq
+%end if
+%if %%description < %%description.mode
+inf
+%end if
+%if %%description > %%description.mode
+sup
+%end if
+%if %%description == %%description.mode
+eq
+%end if
+%if %%description != %%description.mode
+diff
+%end if
+%set %%var = %%description + %%description.mode
+%%var
+%set %%var = %%description.mode + %%description
+%%var
+%end for
+leader2: %%extra.ejabberd.leadership.description[0]
+follower2: %%extra.ejabberd.leadership.description[0].mode
diff --git a/tests/dictionaries_old/60extra_leadership/tmpl/mailname2 b/tests/dictionaries_old/60extra_leadership/tmpl/mailname2
new file mode 100644
index 000000000..fd6190b4b
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership/tmpl/mailname2
@@ -0,0 +1,33 @@
+{% if 'test' in extra.ejabberd.leadership.description -%}
+contain test
+{% endif -%}
+{{ extra.ejabberd.leadership.description|length }}
+{% if 'a' in extra.ejabberd.leadership.description -%}
+contain a
+{% endif -%}
+{% for description in extra.ejabberd.leadership.description -%}
+leader: {{ description }}
+follower: {{ description.mode }}
+{% if description <= description.mode -%}
+infeq
+{% endif -%}
+{% if description >= description.mode -%}
+supeq
+{% endif -%}
+{% if description < description.mode -%}
+inf
+{% endif -%}
+{% if description > description.mode -%}
+sup
+{% endif -%}
+{% if description == description.mode -%}
+eq
+{% endif -%}
+{% if description != description.mode -%}
+diff
+{% endif -%}
+{{ description + description.mode }}
+{{ description.mode + description }}
+{% endfor -%}
+leader2: {{ extra.ejabberd.leadership.description[0] }}
+follower2: {{ extra.ejabberd.leadership.description[0].mode }}
diff --git a/tests/dictionaries_old/60extra_leadership/xml/00-base.xml b/tests/dictionaries_old/60extra_leadership/xml/00-base.xml
new file mode 100644
index 000000000..27b3570db
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ /etc/mailname
+ /etc/mailname2
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_leadership/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_leadership/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..7ffc25da5
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ test
+
+
+ pre
+
+
+
+
+
+
diff --git a/tests/dictionaries/60extra_leadership/yml/00-base.yml b/tests/dictionaries_old/60extra_leadership/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_leadership/yml/00-base.yml
rename to tests/dictionaries_old/60extra_leadership/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_leadership/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_leadership/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_leadership/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_leadership/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries/70container_files/__init__.py b/tests/dictionaries_old/60extra_leadership_name/__init__.py
similarity index 100%
rename from tests/dictionaries/70container_files/__init__.py
rename to tests/dictionaries_old/60extra_leadership_name/__init__.py
diff --git a/tests/dictionaries_old/60extra_leadership_name/makedict/after.json b/tests/dictionaries_old/60extra_leadership_name/makedict/after.json
new file mode 100644
index 000000000..bd4006b97
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name/makedict/after.json
@@ -0,0 +1,56 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.activer_ejabberd": {
+ "owner": "default",
+ "value": "non"
+ },
+ "extra.ejabberd.new_name.description": {
+ "owner": "default",
+ "value": [
+ "test"
+ ]
+ },
+ "extra.ejabberd.new_name.mode": {
+ "owner": [
+ "default"
+ ],
+ "value": [
+ "pre"
+ ]
+ },
+ "services.test_service.files.mailname.name": {
+ "owner": "default",
+ "value": "/etc/mailname"
+ },
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.files.mailname2.name": {
+ "owner": "default",
+ "value": "/etc/mailname2"
+ },
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.manage": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries_old/60extra_leadership_name/makedict/base.json b/tests/dictionaries_old/60extra_leadership_name/makedict/base.json
new file mode 100644
index 000000000..13e7ece30
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name/makedict/base.json
@@ -0,0 +1,18 @@
+{
+ "rougail.general.mode_conteneur_actif": "non",
+ "rougail.general.activer_ejabberd": "non",
+ "extra.ejabberd.new_name.description": [
+ {
+ "extra.ejabberd.new_name.description": "test",
+ "extra.ejabberd.new_name.mode": "pre"
+ }
+ ],
+ "services.test_service.files.mailname.name": "/etc/mailname",
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.files.mailname2.name": "/etc/mailname2",
+ "services.test_service.files.mailname2.source": "mailname2",
+ "services.test_service.files.mailname2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
+}
diff --git a/tests/dictionaries_old/60extra_leadership_name/makedict/before.json b/tests/dictionaries_old/60extra_leadership_name/makedict/before.json
new file mode 100644
index 000000000..bd4006b97
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name/makedict/before.json
@@ -0,0 +1,56 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.activer_ejabberd": {
+ "owner": "default",
+ "value": "non"
+ },
+ "extra.ejabberd.new_name.description": {
+ "owner": "default",
+ "value": [
+ "test"
+ ]
+ },
+ "extra.ejabberd.new_name.mode": {
+ "owner": [
+ "default"
+ ],
+ "value": [
+ "pre"
+ ]
+ },
+ "services.test_service.files.mailname.name": {
+ "owner": "default",
+ "value": "/etc/mailname"
+ },
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.files.mailname2.name": {
+ "owner": "default",
+ "value": "/etc/mailname2"
+ },
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.manage": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries_old/60extra_leadership_name/result/extra/00-base.yml b/tests/dictionaries_old/60extra_leadership_name/result/extra/00-base.yml
new file mode 100644
index 000000000..d3a06a971
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name/result/extra/00-base.yml
@@ -0,0 +1,13 @@
+ejabberd:
+ new_name:
+ type: leadership
+ _description: new_name
+ description:
+ type: string
+ multi: true
+ default:
+ - test
+ mode:
+ type: string
+ default: pre
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_leadership_name/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_leadership_name/result/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_leadership_name/result/services/00-base.yml b/tests/dictionaries_old/60extra_leadership_name/result/services/00-base.yml
new file mode 100644
index 000000000..01ae40493
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/mailname: {}
+ /etc/mailname2:
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_leadership_name/tiramisu/base.py b/tests/dictionaries_old/60extra_leadership_name/tiramisu/base.py
new file mode 100644
index 000000000..2b294dd68
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name/tiramisu/base.py
@@ -0,0 +1,50 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode", doc="mode", multi=True, default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = Leadership(name="new_name", doc="new_name", children=[option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_14 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_15 = FilenameOption(name="source", doc="source", default="/etc/mailname")
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_13 = OptionDescription(name="mailname", doc="mailname", children=[option_14, option_15, option_16])
+option_18 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_19 = FilenameOption(name="source", doc="source", default="/etc/mailname2")
+option_20 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_17 = OptionDescription(name="mailname2", doc="mailname2", children=[option_18, option_19, option_20])
+optiondescription_17.impl_set_information('engine', "jinja")
+optiondescription_12 = OptionDescription(name="files", doc="files", children=[optiondescription_13, optiondescription_17])
+option_21 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_11 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_12, option_21, option_22])
+optiondescription_11.impl_set_information('type', "service")
+optiondescription_10 = OptionDescription(name="services", doc="services", children=[optiondescription_11], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5, optiondescription_10])
diff --git a/tests/dictionaries_old/60extra_leadership_name/tiramisu/multi.py b/tests/dictionaries_old/60extra_leadership_name/tiramisu/multi.py
new file mode 100644
index 000000000..4c800df8d
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name/tiramisu/multi.py
@@ -0,0 +1,76 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_38 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_6 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = Leadership(name="new_name", doc="new_name", children=[option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_39 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
+option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_20 = StrOption(name="source", doc="source", default="mailname")
+option_18 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
+option_23 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_24 = StrOption(name="source", doc="source", default="mailname2")
+option_22 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_21 = OptionDescription(name="mailname2", doc="mailname2", children=[option_23, option_24, option_22])
+optiondescription_21.impl_set_information('engine', "jinja")
+optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17, optiondescription_21])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_25 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_41 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_25])
+optiondescription_41.impl_set_information('type', "service")
+optiondescription_40 = OptionDescription(name="services", doc="services", children=[optiondescription_41], properties=frozenset({"hidden"}))
+optiondescription_37 = OptionDescription(name="1", doc="1", children=[optiondescription_38, optiondescription_39, optiondescription_40])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_43 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_13 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_12 = Leadership(name="new_name", doc="new_name", children=[option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_44 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_30 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_31 = StrOption(name="source", doc="source", default="mailname")
+option_29 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_28 = OptionDescription(name="mailname", doc="mailname", children=[option_30, option_31, option_29])
+option_34 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_35 = StrOption(name="source", doc="source", default="mailname2")
+option_33 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_32 = OptionDescription(name="mailname2", doc="mailname2", children=[option_34, option_35, option_33])
+optiondescription_32.impl_set_information('engine', "jinja")
+optiondescription_27 = OptionDescription(name="files", doc="files", children=[optiondescription_28, optiondescription_32])
+option_26 = BoolOption(name="activate", doc="activate", default=True)
+option_36 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_46 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_27, option_26, option_36])
+optiondescription_46.impl_set_information('type', "service")
+optiondescription_45 = OptionDescription(name="services", doc="services", children=[optiondescription_46], properties=frozenset({"hidden"}))
+optiondescription_42 = OptionDescription(name="2", doc="2", children=[optiondescription_43, optiondescription_44, optiondescription_45])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_37, optiondescription_42])
diff --git a/tests/dictionaries_old/60extra_leadership_name/tmpl/mailname b/tests/dictionaries_old/60extra_leadership_name/tmpl/mailname
new file mode 100644
index 000000000..3fc4092ec
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name/tmpl/mailname
@@ -0,0 +1,36 @@
+%if 'test' in %%extra.ejabberd.new_name.description
+contain test
+%end if
+%%len(%%extra.ejabberd.new_name.description)
+%if 'a' in %%extra.ejabberd.new_name.description
+contain a
+%end if
+%for %%description in %%extra.ejabberd.new_name.description
+leader: %%description
+follower: %%description.mode
+%if %%description <= %%description.mode
+infeq
+%end if
+%if %%description >= %%description.mode
+supeq
+%end if
+%if %%description < %%description.mode
+inf
+%end if
+%if %%description > %%description.mode
+sup
+%end if
+%if %%description == %%description.mode
+eq
+%end if
+%if %%description != %%description.mode
+diff
+%end if
+%set %%var = %%description + %%description.mode
+%%var
+%set %%var = %%description.mode + %%description
+%%var
+%end for
+leader2: %%extra.ejabberd.new_name.description[0].description
+follower2: %%extra.ejabberd.new_name.description[0].mode
+index: %%extra.ejabberd.new_name.description.index('test')
diff --git a/tests/dictionaries_old/60extra_leadership_name/tmpl/mailname2 b/tests/dictionaries_old/60extra_leadership_name/tmpl/mailname2
new file mode 100644
index 000000000..0925d8b7a
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name/tmpl/mailname2
@@ -0,0 +1,34 @@
+{% if 'test' in extra.ejabberd.new_name.description -%}
+contain test
+{% endif -%}
+{{ extra.ejabberd.new_name.description |length }}
+{% if 'a' in extra.ejabberd.new_name.description -%}
+contain a
+{% endif -%}
+{% for description in extra.ejabberd.new_name.description -%}
+leader: {{ description }}
+follower: {{ description.mode }}
+{% if description <= description.mode -%}
+infeq
+{% endif -%}
+{% if description >= description.mode -%}
+supeq
+{% endif -%}
+{% if description < description.mode -%}
+inf
+{% endif -%}
+{% if description > description.mode -%}
+sup
+{% endif -%}
+{% if description == description.mode -%}
+eq
+{% endif -%}
+{% if description != description.mode -%}
+diff
+{% endif -%}
+{{ description + description.mode }}
+{{ description.mode + description }}
+{% endfor -%}
+leader2: {{ extra.ejabberd.new_name.description[0].description }}
+follower2: {{ extra.ejabberd.new_name.description[0].mode }}
+index: {{ extra.ejabberd.new_name.description.index('test') }}
diff --git a/tests/dictionaries_old/60extra_leadership_name/xml/00-base.xml b/tests/dictionaries_old/60extra_leadership_name/xml/00-base.xml
new file mode 100644
index 000000000..27b3570db
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ /etc/mailname
+ /etc/mailname2
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_leadership_name/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_leadership_name/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..0a2a87ef6
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ test
+
+
+ pre
+
+
+
+
+
+
diff --git a/tests/dictionaries/60extra_leadership_name/yml/00-base.yml b/tests/dictionaries_old/60extra_leadership_name/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_leadership_name/yml/00-base.yml
rename to tests/dictionaries_old/60extra_leadership_name/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_leadership_name/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_leadership_name/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_leadership_name/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_leadership_name/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries/70container_files_symlink_multi/__init__.py b/tests/dictionaries_old/60extra_leadership_name_item/__init__.py
similarity index 100%
rename from tests/dictionaries/70container_files_symlink_multi/__init__.py
rename to tests/dictionaries_old/60extra_leadership_name_item/__init__.py
diff --git a/tests/dictionaries_old/60extra_leadership_name_item/makedict/after.json b/tests/dictionaries_old/60extra_leadership_name_item/makedict/after.json
new file mode 100644
index 000000000..bd4006b97
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name_item/makedict/after.json
@@ -0,0 +1,56 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.activer_ejabberd": {
+ "owner": "default",
+ "value": "non"
+ },
+ "extra.ejabberd.new_name.description": {
+ "owner": "default",
+ "value": [
+ "test"
+ ]
+ },
+ "extra.ejabberd.new_name.mode": {
+ "owner": [
+ "default"
+ ],
+ "value": [
+ "pre"
+ ]
+ },
+ "services.test_service.files.mailname.name": {
+ "owner": "default",
+ "value": "/etc/mailname"
+ },
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.files.mailname2.name": {
+ "owner": "default",
+ "value": "/etc/mailname2"
+ },
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.manage": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries_old/60extra_leadership_name_item/makedict/base.json b/tests/dictionaries_old/60extra_leadership_name_item/makedict/base.json
new file mode 100644
index 000000000..13e7ece30
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name_item/makedict/base.json
@@ -0,0 +1,18 @@
+{
+ "rougail.general.mode_conteneur_actif": "non",
+ "rougail.general.activer_ejabberd": "non",
+ "extra.ejabberd.new_name.description": [
+ {
+ "extra.ejabberd.new_name.description": "test",
+ "extra.ejabberd.new_name.mode": "pre"
+ }
+ ],
+ "services.test_service.files.mailname.name": "/etc/mailname",
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.files.mailname2.name": "/etc/mailname2",
+ "services.test_service.files.mailname2.source": "mailname2",
+ "services.test_service.files.mailname2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
+}
diff --git a/tests/dictionaries_old/60extra_leadership_name_item/makedict/before.json b/tests/dictionaries_old/60extra_leadership_name_item/makedict/before.json
new file mode 100644
index 000000000..bd4006b97
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name_item/makedict/before.json
@@ -0,0 +1,56 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.activer_ejabberd": {
+ "owner": "default",
+ "value": "non"
+ },
+ "extra.ejabberd.new_name.description": {
+ "owner": "default",
+ "value": [
+ "test"
+ ]
+ },
+ "extra.ejabberd.new_name.mode": {
+ "owner": [
+ "default"
+ ],
+ "value": [
+ "pre"
+ ]
+ },
+ "services.test_service.files.mailname.name": {
+ "owner": "default",
+ "value": "/etc/mailname"
+ },
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.files.mailname2.name": {
+ "owner": "default",
+ "value": "/etc/mailname2"
+ },
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.manage": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries_old/60extra_leadership_name_item/result/extra/00-base.yml b/tests/dictionaries_old/60extra_leadership_name_item/result/extra/00-base.yml
new file mode 100644
index 000000000..d3a06a971
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name_item/result/extra/00-base.yml
@@ -0,0 +1,13 @@
+ejabberd:
+ new_name:
+ type: leadership
+ _description: new_name
+ description:
+ type: string
+ multi: true
+ default:
+ - test
+ mode:
+ type: string
+ default: pre
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_leadership_name_item/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_leadership_name_item/result/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name_item/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_leadership_name_item/result/services/00-base.yml b/tests/dictionaries_old/60extra_leadership_name_item/result/services/00-base.yml
new file mode 100644
index 000000000..01ae40493
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name_item/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/mailname: {}
+ /etc/mailname2:
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_leadership_name_item/tiramisu/base.py b/tests/dictionaries_old/60extra_leadership_name_item/tiramisu/base.py
new file mode 100644
index 000000000..2b294dd68
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name_item/tiramisu/base.py
@@ -0,0 +1,50 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
+option_9 = StrOption(name="mode", doc="mode", multi=True, default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = Leadership(name="new_name", doc="new_name", children=[option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_14 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_15 = FilenameOption(name="source", doc="source", default="/etc/mailname")
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_13 = OptionDescription(name="mailname", doc="mailname", children=[option_14, option_15, option_16])
+option_18 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_19 = FilenameOption(name="source", doc="source", default="/etc/mailname2")
+option_20 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_17 = OptionDescription(name="mailname2", doc="mailname2", children=[option_18, option_19, option_20])
+optiondescription_17.impl_set_information('engine', "jinja")
+optiondescription_12 = OptionDescription(name="files", doc="files", children=[optiondescription_13, optiondescription_17])
+option_21 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_11 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_12, option_21, option_22])
+optiondescription_11.impl_set_information('type', "service")
+optiondescription_10 = OptionDescription(name="services", doc="services", children=[optiondescription_11], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5, optiondescription_10])
diff --git a/tests/dictionaries_old/60extra_leadership_name_item/tiramisu/multi.py b/tests/dictionaries_old/60extra_leadership_name_item/tiramisu/multi.py
new file mode 100644
index 000000000..4c800df8d
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name_item/tiramisu/multi.py
@@ -0,0 +1,76 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_38 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_6 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
+option_7 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = Leadership(name="new_name", doc="new_name", children=[option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_39 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
+option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_20 = StrOption(name="source", doc="source", default="mailname")
+option_18 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
+option_23 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_24 = StrOption(name="source", doc="source", default="mailname2")
+option_22 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_21 = OptionDescription(name="mailname2", doc="mailname2", children=[option_23, option_24, option_22])
+optiondescription_21.impl_set_information('engine', "jinja")
+optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17, optiondescription_21])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_25 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_41 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_25])
+optiondescription_41.impl_set_information('type', "service")
+optiondescription_40 = OptionDescription(name="services", doc="services", children=[optiondescription_41], properties=frozenset({"hidden"}))
+optiondescription_37 = OptionDescription(name="1", doc="1", children=[optiondescription_38, optiondescription_39, optiondescription_40])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_43 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_13 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
+option_14 = StrOption(name="mode", doc="mode", multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_12 = Leadership(name="new_name", doc="new_name", children=[option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_44 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_30 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_31 = StrOption(name="source", doc="source", default="mailname")
+option_29 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_28 = OptionDescription(name="mailname", doc="mailname", children=[option_30, option_31, option_29])
+option_34 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_35 = StrOption(name="source", doc="source", default="mailname2")
+option_33 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_32 = OptionDescription(name="mailname2", doc="mailname2", children=[option_34, option_35, option_33])
+optiondescription_32.impl_set_information('engine', "jinja")
+optiondescription_27 = OptionDescription(name="files", doc="files", children=[optiondescription_28, optiondescription_32])
+option_26 = BoolOption(name="activate", doc="activate", default=True)
+option_36 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_46 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_27, option_26, option_36])
+optiondescription_46.impl_set_information('type', "service")
+optiondescription_45 = OptionDescription(name="services", doc="services", children=[optiondescription_46], properties=frozenset({"hidden"}))
+optiondescription_42 = OptionDescription(name="2", doc="2", children=[optiondescription_43, optiondescription_44, optiondescription_45])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_37, optiondescription_42])
diff --git a/tests/dictionaries_old/60extra_leadership_name_item/tmpl/mailname b/tests/dictionaries_old/60extra_leadership_name_item/tmpl/mailname
new file mode 100644
index 000000000..df72e5964
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name_item/tmpl/mailname
@@ -0,0 +1,35 @@
+%if 'test' in %%extra['ejabberd']['new_name']['description']
+contain test
+%end if
+%%len(%%extra['ejabberd']['new_name']['description'])
+%if 'a' in %%extra['ejabberd']['new_name']['description']
+contain a
+%end if
+%for %%description in %%extra['ejabberd']['new_name']['description']
+leader: %%description
+follower: %%description['mode']
+%if %%description <= %%description['mode']
+infeq
+%end if
+%if %%description >= %%description['mode']
+supeq
+%end if
+%if %%description < %%description['mode']
+inf
+%end if
+%if %%description > %%description['mode']
+sup
+%end if
+%if %%description == %%description['mode']
+eq
+%end if
+%if %%description != %%description['mode']
+diff
+%end if
+%set %%var = %%description + %%description['mode']
+%%var
+%set %%var = %%description['mode'] + %%description
+%%var
+%end for
+leader2: %%extra['ejabberd']['new_name']['description'][0]
+follower2: %%extra['ejabberd']['new_name']['description'][0]['mode']
diff --git a/tests/dictionaries_old/60extra_leadership_name_item/tmpl/mailname2 b/tests/dictionaries_old/60extra_leadership_name_item/tmpl/mailname2
new file mode 100644
index 000000000..78ee2b6ea
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name_item/tmpl/mailname2
@@ -0,0 +1,33 @@
+{% if 'test' in extra.ejabberd.new_name.description -%}
+contain test
+{% endif -%}
+{{ extra.ejabberd.new_name.description |length }}
+{% if 'a' in extra.ejabberd.new_name.description -%}
+contain a
+{% endif -%}
+{% for description in extra.ejabberd.new_name.description -%}
+leader: {{ description }}
+follower: {{ description.mode }}
+{% if description <= description.mode -%}
+infeq
+{% endif -%}
+{% if description >= description.mode -%}
+supeq
+{% endif -%}
+{% if description < description.mode -%}
+inf
+{% endif -%}
+{% if description > description.mode -%}
+sup
+{% endif -%}
+{% if description == description.mode -%}
+eq
+{% endif -%}
+{% if description != description.mode -%}
+diff
+{% endif -%}
+{{ description + description.mode }}
+{{ description.mode + description }}
+{% endfor -%}
+leader2: {{ extra.ejabberd.new_name.description[0] }}
+follower2: {{ extra.ejabberd.new_name.description[0].mode }}
diff --git a/tests/dictionaries_old/60extra_leadership_name_item/xml/00-base.xml b/tests/dictionaries_old/60extra_leadership_name_item/xml/00-base.xml
new file mode 100644
index 000000000..27b3570db
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name_item/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ /etc/mailname
+ /etc/mailname2
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_leadership_name_item/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_leadership_name_item/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..0a2a87ef6
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_name_item/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ test
+
+
+ pre
+
+
+
+
+
+
diff --git a/tests/dictionaries/60extra_leadership_name_item/yml/00-base.yml b/tests/dictionaries_old/60extra_leadership_name_item/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_leadership_name_item/yml/00-base.yml
rename to tests/dictionaries_old/60extra_leadership_name_item/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_leadership_name_item/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_leadership_name_item/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_leadership_name_item/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_leadership_name_item/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/__init__.py b/tests/dictionaries_old/60extra_leadership_valid_enum/__init__.py
similarity index 100%
rename from tests/dictionaries/70container_files_symlink_multi_variable/__init__.py
rename to tests/dictionaries_old/60extra_leadership_valid_enum/__init__.py
diff --git a/tests/dictionaries_old/60extra_leadership_valid_enum/makedict/after.json b/tests/dictionaries_old/60extra_leadership_valid_enum/makedict/after.json
new file mode 100644
index 000000000..dbe324b76
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_valid_enum/makedict/after.json
@@ -0,0 +1,56 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.activer_ejabberd": {
+ "owner": "default",
+ "value": "non"
+ },
+ "extra.ejabberd.description.description": {
+ "owner": "default",
+ "value": [
+ "test"
+ ]
+ },
+ "extra.ejabberd.description.mode": {
+ "owner": [
+ "default"
+ ],
+ "value": [
+ "pre"
+ ]
+ },
+ "services.test_service.files.mailname.name": {
+ "owner": "default",
+ "value": "/etc/mailname"
+ },
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.files.mailname2.name": {
+ "owner": "default",
+ "value": "/etc/mailname2"
+ },
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.manage": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries_old/60extra_leadership_valid_enum/makedict/base.json b/tests/dictionaries_old/60extra_leadership_valid_enum/makedict/base.json
new file mode 100644
index 000000000..925519eb7
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_valid_enum/makedict/base.json
@@ -0,0 +1,18 @@
+{
+ "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_service.files.mailname.name": "/etc/mailname",
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.files.mailname2.name": "/etc/mailname2",
+ "services.test_service.files.mailname2.source": "mailname2",
+ "services.test_service.files.mailname2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
+}
diff --git a/tests/dictionaries_old/60extra_leadership_valid_enum/makedict/before.json b/tests/dictionaries_old/60extra_leadership_valid_enum/makedict/before.json
new file mode 100644
index 000000000..dbe324b76
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_valid_enum/makedict/before.json
@@ -0,0 +1,56 @@
+{
+ "rougail.general.mode_conteneur_actif": {
+ "owner": "default",
+ "value": "non"
+ },
+ "rougail.general.activer_ejabberd": {
+ "owner": "default",
+ "value": "non"
+ },
+ "extra.ejabberd.description.description": {
+ "owner": "default",
+ "value": [
+ "test"
+ ]
+ },
+ "extra.ejabberd.description.mode": {
+ "owner": [
+ "default"
+ ],
+ "value": [
+ "pre"
+ ]
+ },
+ "services.test_service.files.mailname.name": {
+ "owner": "default",
+ "value": "/etc/mailname"
+ },
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.files.mailname2.name": {
+ "owner": "default",
+ "value": "/etc/mailname2"
+ },
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.activate": {
+ "owner": "default",
+ "value": true
+ },
+ "services.test_service.manage": {
+ "owner": "default",
+ "value": true
+ }
+}
diff --git a/tests/dictionaries_old/60extra_leadership_valid_enum/result/extra/00-base.yml b/tests/dictionaries_old/60extra_leadership_valid_enum/result/extra/00-base.yml
new file mode 100644
index 000000000..982b50447
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_valid_enum/result/extra/00-base.yml
@@ -0,0 +1,16 @@
+ejabberd:
+ description:
+ type: leadership
+ _description: description
+ description:
+ type: string
+ multi: true
+ default:
+ - test
+ mode:
+ type: choice
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_leadership_valid_enum/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_leadership_valid_enum/result/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_valid_enum/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_leadership_valid_enum/result/services/00-base.yml b/tests/dictionaries_old/60extra_leadership_valid_enum/result/services/00-base.yml
new file mode 100644
index 000000000..01ae40493
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_valid_enum/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/mailname: {}
+ /etc/mailname2:
+ engine: jinja
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_leadership_valid_enum/tiramisu/base.py b/tests/dictionaries_old/60extra_leadership_valid_enum/tiramisu/base.py
new file mode 100644
index 000000000..ca40ba45d
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_valid_enum/tiramisu/base.py
@@ -0,0 +1,50 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_8 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
+option_9 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), multi=True, default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = Leadership(name="description", doc="description", children=[option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_14 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_15 = FilenameOption(name="source", doc="source", default="/etc/mailname")
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_13 = OptionDescription(name="mailname", doc="mailname", children=[option_14, option_15, option_16])
+option_18 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_19 = FilenameOption(name="source", doc="source", default="/etc/mailname2")
+option_20 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_17 = OptionDescription(name="mailname2", doc="mailname2", children=[option_18, option_19, option_20])
+optiondescription_17.impl_set_information('engine', "jinja")
+optiondescription_12 = OptionDescription(name="files", doc="files", children=[optiondescription_13, optiondescription_17])
+option_21 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_11 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_12, option_21, option_22])
+optiondescription_11.impl_set_information('type', "service")
+optiondescription_10 = OptionDescription(name="services", doc="services", children=[optiondescription_11], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5, optiondescription_10])
diff --git a/tests/dictionaries_old/60extra_leadership_valid_enum/tiramisu/multi.py b/tests/dictionaries_old/60extra_leadership_valid_enum/tiramisu/multi.py
new file mode 100644
index 000000000..ed75dd172
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_valid_enum/tiramisu/multi.py
@@ -0,0 +1,76 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_38 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_6 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
+option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = Leadership(name="description", doc="description", children=[option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_39 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
+option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_20 = StrOption(name="source", doc="source", default="mailname")
+option_18 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_17 = OptionDescription(name="mailname", doc="mailname", children=[option_19, option_20, option_18])
+option_23 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_24 = StrOption(name="source", doc="source", default="mailname2")
+option_22 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_21 = OptionDescription(name="mailname2", doc="mailname2", children=[option_23, option_24, option_22])
+optiondescription_21.impl_set_information('engine', "jinja")
+optiondescription_16 = OptionDescription(name="files", doc="files", children=[optiondescription_17, optiondescription_21])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_25 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_41 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_25])
+optiondescription_41.impl_set_information('type', "service")
+optiondescription_40 = OptionDescription(name="services", doc="services", children=[optiondescription_41], properties=frozenset({"hidden"}))
+optiondescription_37 = OptionDescription(name="1", doc="1", children=[optiondescription_38, optiondescription_39, optiondescription_40])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_43 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_13 = StrOption(name="description", doc="description", multi=True, default=['test'], properties=frozenset({"mandatory", "normal"}))
+option_14 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), multi=True, default_multi="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_12 = Leadership(name="description", doc="description", children=[option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[optiondescription_12], properties=frozenset({"normal"}))
+optiondescription_44 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
+option_30 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_31 = StrOption(name="source", doc="source", default="mailname")
+option_29 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_28 = OptionDescription(name="mailname", doc="mailname", children=[option_30, option_31, option_29])
+option_34 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_35 = StrOption(name="source", doc="source", default="mailname2")
+option_33 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_32 = OptionDescription(name="mailname2", doc="mailname2", children=[option_34, option_35, option_33])
+optiondescription_32.impl_set_information('engine', "jinja")
+optiondescription_27 = OptionDescription(name="files", doc="files", children=[optiondescription_28, optiondescription_32])
+option_26 = BoolOption(name="activate", doc="activate", default=True)
+option_36 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_46 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_27, option_26, option_36])
+optiondescription_46.impl_set_information('type', "service")
+optiondescription_45 = OptionDescription(name="services", doc="services", children=[optiondescription_46], properties=frozenset({"hidden"}))
+optiondescription_42 = OptionDescription(name="2", doc="2", children=[optiondescription_43, optiondescription_44, optiondescription_45])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_37, optiondescription_42])
diff --git a/tests/dictionaries_old/60extra_leadership_valid_enum/tmpl/mailname b/tests/dictionaries_old/60extra_leadership_valid_enum/tmpl/mailname
new file mode 100644
index 000000000..56abb7a07
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_valid_enum/tmpl/mailname
@@ -0,0 +1,35 @@
+%if 'test' in %%extra.ejabberd.description.description
+contain test
+%end if
+%%len(%%extra.ejabberd.description.description)
+%if 'a' in %%extra.ejabberd.description.description
+contain a
+%end if
+%for %%description in %%extra.ejabberd.description.description
+leader: %%description
+follower: %%description.mode
+%if %%description <= %%description.mode
+infeq
+%end if
+%if %%description >= %%description.mode
+supeq
+%end if
+%if %%description < %%description.mode
+inf
+%end if
+%if %%description > %%description.mode
+sup
+%end if
+%if %%description == %%description.mode
+eq
+%end if
+%if %%description != %%description.mode
+diff
+%end if
+%set %%var = %%description + %%description.mode
+%%var
+%set %%var = %%description.mode + %%description
+%%var
+%end for
+leader2: %%extra.ejabberd.description.description[0]
+follower2: %%extra.ejabberd.description.description[0].mode
diff --git a/tests/dictionaries_old/60extra_leadership_valid_enum/tmpl/mailname2 b/tests/dictionaries_old/60extra_leadership_valid_enum/tmpl/mailname2
new file mode 100644
index 000000000..99fc5bab6
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_valid_enum/tmpl/mailname2
@@ -0,0 +1,33 @@
+{% if 'test' in extra.ejabberd.description.description -%}
+contain test
+{% endif -%}
+{{ extra.ejabberd.description.description|length }}
+{% if 'a' in extra.ejabberd.description.description -%}
+contain a
+{% endif -%}
+{% for description in extra.ejabberd.description.description -%}
+leader: {{ description }}
+follower: {{ description.mode }}
+{% if description <= description.mode -%}
+infeq
+{% endif -%}
+{% if description >= description.mode -%}
+supeq
+{% endif -%}
+{% if description < description.mode -%}
+inf
+{% endif -%}
+{% if description > description.mode -%}
+sup
+{% endif -%}
+{% if description == description.mode -%}
+eq
+{% endif -%}
+{% if description != description.mode -%}
+diff
+{% endif -%}
+{{ description + description.mode }}
+{{ description.mode + description }}
+{% endfor -%}
+leader2: {{ extra.ejabberd.description.description[0] }}
+follower2: {{ extra.ejabberd.description.description[0].mode }}
diff --git a/tests/dictionaries_old/60extra_leadership_valid_enum/xml/00-base.xml b/tests/dictionaries_old/60extra_leadership_valid_enum/xml/00-base.xml
new file mode 100644
index 000000000..27b3570db
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_valid_enum/xml/00-base.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ /etc/mailname
+ /etc/mailname2
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_leadership_valid_enum/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_leadership_valid_enum/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..df8ea73d4
--- /dev/null
+++ b/tests/dictionaries_old/60extra_leadership_valid_enum/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+ test
+
+
+ pre
+ post
+ pre
+
+
+
+
+
diff --git a/tests/dictionaries/60extra_leadership_valid_enum/yml/00-base.yml b/tests/dictionaries_old/60extra_leadership_valid_enum/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_leadership_valid_enum/yml/00-base.yml
rename to tests/dictionaries_old/60extra_leadership_valid_enum/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_leadership_valid_enum/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_leadership_valid_enum/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_leadership_valid_enum/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_leadership_valid_enum/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries_old/60extra_load/00-base.xml b/tests/dictionaries_old/60extra_load/00-base.xml
deleted file mode 100644
index 8c0f3365c..000000000
--- a/tests/dictionaries_old/60extra_load/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_load/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_load/extra_dirs/extra/00-base.xml
deleted file mode 100644
index a11e423b2..000000000
--- a/tests/dictionaries_old/60extra_load/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- Exportation de la base de ejabberd
-
-
-
- pre
-
-
-
-
-
- non
- activer_ejabberd
- none
- daily
- extra.ejabberd.day
-
-
-
diff --git a/tests/dictionaries_old/60extra_load/result/extra/00-base.yml b/tests/dictionaries_old/60extra_load/result/extra/00-base.yml
new file mode 100644
index 000000000..83dfcc6c1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_load/result/extra/00-base.yml
@@ -0,0 +1,29 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__activer_ejabberd, match="none",
+ mismatch="daily") }}'
+ params:
+ __activer_ejabberd:
+ type: variable
+ variable: __activer_ejabberd
+ propertyerror: false
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_load/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_load/result/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_load/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_load/tiramisu/base.py b/tests/dictionaries_old/60extra_load/tiramisu/base.py
index 5fa27fcaf..423a2aa4f 100644
--- a/tests/dictionaries_old/60extra_load/tiramisu/base.py
+++ b/tests/dictionaries_old/60extra_load/tiramisu/base.py
@@ -1,23 +1,65 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_8 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_8 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(extra.ejabberd.day), '__internal_type': ParamValue(choice), '__internal_multi': ParamValue(False)})), properties=frozenset({"mandatory", "normal"}))
option_9 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-option_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
-option_5 = OptionDescription(name="extra", doc="extra", children=[option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_5])
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries_old/60extra_load/tiramisu/multi.py b/tests/dictionaries_old/60extra_load/tiramisu/multi.py
new file mode 100644
index 000000000..9c2e3c1f0
--- /dev/null
+++ b/tests/dictionaries_old/60extra_load/tiramisu/multi.py
@@ -0,0 +1,46 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16, optiondescription_17])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_12 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_13 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_10, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_14 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="2", doc="2", children=[optiondescription_19, optiondescription_20])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_18])
diff --git a/tests/dictionaries_old/60extra_load/xml/00-base.xml b/tests/dictionaries_old/60extra_load/xml/00-base.xml
new file mode 100644
index 000000000..cb25aa750
--- /dev/null
+++ b/tests/dictionaries_old/60extra_load/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_load/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_load/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..cd2c3dc4f
--- /dev/null
+++ b/tests/dictionaries_old/60extra_load/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ Exportation de la base de ejabberd
+
+
+ none
+ daily
+ weekly
+ monthly
+ none
+
+
+ pre
+ pre
+ post
+
+
+
+
+
+ non
+ activer_ejabberd
+ none
+ daily
+ extra.ejabberd.day
+
+
+
diff --git a/tests/dictionaries/60extra_load/yml/00-base.yml b/tests/dictionaries_old/60extra_load/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_load/yml/00-base.yml
rename to tests/dictionaries_old/60extra_load/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_load/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_load/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_load/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_load/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries_old/60extra_mandatory/00-base.xml b/tests/dictionaries_old/60extra_mandatory/00-base.xml
deleted file mode 100644
index 8c0f3365c..000000000
--- a/tests/dictionaries_old/60extra_mandatory/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_mandatory/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_mandatory/extra_dirs/extra/00-base.xml
deleted file mode 100644
index fd6e7405b..000000000
--- a/tests/dictionaries_old/60extra_mandatory/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
- Exportation de la base de ejabberd
-
-
-
-
-
-
-
-
- non
- activer_ejabberd
- none
- daily
- extra.ejabberd.day
-
-
-
diff --git a/tests/dictionaries_old/60extra_mandatory/result/extra/00-base.yml b/tests/dictionaries_old/60extra_mandatory/result/extra/00-base.yml
new file mode 100644
index 000000000..8cf984b33
--- /dev/null
+++ b/tests/dictionaries_old/60extra_mandatory/result/extra/00-base.yml
@@ -0,0 +1,32 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__activer_ejabberd, match="none",
+ mismatch="daily") }}'
+ params:
+ __activer_ejabberd:
+ type: variable
+ variable: __activer_ejabberd
+ propertyerror: false
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+ var1:
+ type: string
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_mandatory/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_mandatory/result/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_mandatory/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_mandatory/tiramisu/base.py b/tests/dictionaries_old/60extra_mandatory/tiramisu/base.py
index 18fa5781c..b2be62db5 100644
--- a/tests/dictionaries_old/60extra_mandatory/tiramisu/base.py
+++ b/tests/dictionaries_old/60extra_mandatory/tiramisu/base.py
@@ -1,24 +1,66 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_8 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_8 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(extra.ejabberd.day), '__internal_type': ParamValue(choice), '__internal_multi': ParamValue(False)})), properties=frozenset({"mandatory", "normal"}))
option_9 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
option_10 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}))
-option_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9, option_10], properties=frozenset({"basic"}))
-option_5 = OptionDescription(name="extra", doc="extra", children=[option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_5])
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9, option_10], properties=frozenset({"basic"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries_old/60extra_mandatory/tiramisu/multi.py b/tests/dictionaries_old/60extra_mandatory/tiramisu/multi.py
new file mode 100644
index 000000000..b9aa4c422
--- /dev/null
+++ b/tests/dictionaries_old/60extra_mandatory/tiramisu/multi.py
@@ -0,0 +1,48 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+option_8 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}))
+optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7, option_8], properties=frozenset({"basic"}))
+optiondescription_19 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"basic"}))
+optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18, optiondescription_19])
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_11 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="général", children=[option_10, option_11], properties=frozenset({"normal"}))
+optiondescription_21 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_13 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_14 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_11, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_15 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+option_16 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}))
+optiondescription_12 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_13, option_14, option_15, option_16], properties=frozenset({"basic"}))
+optiondescription_22 = OptionDescription(name="extra", doc="extra", children=[optiondescription_12], properties=frozenset({"basic"}))
+optiondescription_20 = OptionDescription(name="2", doc="2", children=[optiondescription_21, optiondescription_22])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_20])
diff --git a/tests/dictionaries_old/60extra_mandatory/xml/00-base.xml b/tests/dictionaries_old/60extra_mandatory/xml/00-base.xml
new file mode 100644
index 000000000..cb25aa750
--- /dev/null
+++ b/tests/dictionaries_old/60extra_mandatory/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_mandatory/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_mandatory/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..3a96f5b9b
--- /dev/null
+++ b/tests/dictionaries_old/60extra_mandatory/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+ Exportation de la base de ejabberd
+
+
+ none
+ daily
+ weekly
+ monthly
+ none
+
+
+ pre
+ post
+ pre
+
+
+
+
+
+
+ non
+ activer_ejabberd
+ none
+ daily
+ extra.ejabberd.day
+
+
+
diff --git a/tests/dictionaries/60extra_mandatory/yml/00-base.yml b/tests/dictionaries_old/60extra_mandatory/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_mandatory/yml/00-base.yml
rename to tests/dictionaries_old/60extra_mandatory/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_mandatory/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_mandatory/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_mandatory/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_mandatory/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries_old/60extra_name_family/00-base.xml b/tests/dictionaries_old/60extra_name_family/00-base.xml
deleted file mode 100644
index 2279aa8d5..000000000
--- a/tests/dictionaries_old/60extra_name_family/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_name_family/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_name_family/extra_dirs/extra/00-base.xml
deleted file mode 100644
index a11e423b2..000000000
--- a/tests/dictionaries_old/60extra_name_family/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- Exportation de la base de ejabberd
-
-
-
- pre
-
-
-
-
-
- non
- activer_ejabberd
- none
- daily
- extra.ejabberd.day
-
-
-
diff --git a/tests/dictionaries_old/60extra_name_family/result/extra/00-base.yml b/tests/dictionaries_old/60extra_name_family/result/extra/00-base.yml
new file mode 100644
index 000000000..83dfcc6c1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_name_family/result/extra/00-base.yml
@@ -0,0 +1,29 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__activer_ejabberd, match="none",
+ mismatch="daily") }}'
+ params:
+ __activer_ejabberd:
+ type: variable
+ variable: __activer_ejabberd
+ propertyerror: false
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_name_family/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_name_family/result/rougail/00-base.yml
new file mode 100644
index 000000000..2d97f1169
--- /dev/null
+++ b/tests/dictionaries_old/60extra_name_family/result/rougail/00-base.yml
@@ -0,0 +1,12 @@
+extra:
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_name_family/tiramisu/base.py b/tests/dictionaries_old/60extra_name_family/tiramisu/base.py
index 6e9b939c2..50f9154f7 100644
--- a/tests/dictionaries_old/60extra_name_family/tiramisu/base.py
+++ b/tests/dictionaries_old/60extra_name_family/tiramisu/base.py
@@ -1,23 +1,65 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="extra", doc="extra", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="extra", doc="extra", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
-option_8 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_8 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(extra.ejabberd.day), '__internal_type': ParamValue(choice), '__internal_multi': ParamValue(False)})), properties=frozenset({"mandatory", "normal"}))
option_9 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-option_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
-option_5 = OptionDescription(name="extra", doc="extra", children=[option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_5])
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries_old/60extra_name_family/tiramisu/multi.py b/tests/dictionaries_old/60extra_name_family/tiramisu/multi.py
new file mode 100644
index 000000000..a746df2ff
--- /dev/null
+++ b/tests/dictionaries_old/60extra_name_family/tiramisu/multi.py
@@ -0,0 +1,46 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="extra", doc="extra", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16, optiondescription_17])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="extra", doc="extra", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_12 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_13 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_10, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_14 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="2", doc="2", children=[optiondescription_19, optiondescription_20])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_18])
diff --git a/tests/dictionaries_old/60extra_name_family/xml/00-base.xml b/tests/dictionaries_old/60extra_name_family/xml/00-base.xml
new file mode 100644
index 000000000..16883f23d
--- /dev/null
+++ b/tests/dictionaries_old/60extra_name_family/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_name_family/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_name_family/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..cd2c3dc4f
--- /dev/null
+++ b/tests/dictionaries_old/60extra_name_family/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ Exportation de la base de ejabberd
+
+
+ none
+ daily
+ weekly
+ monthly
+ none
+
+
+ pre
+ pre
+ post
+
+
+
+
+
+ non
+ activer_ejabberd
+ none
+ daily
+ extra.ejabberd.day
+
+
+
diff --git a/tests/dictionaries/60extra_name_family/yml/00-base.yml b/tests/dictionaries_old/60extra_name_family/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_name_family/yml/00-base.yml
rename to tests/dictionaries_old/60extra_name_family/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_name_family/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_name_family/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_name_family/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_name_family/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries_old/60extra_no_condition/00-base.xml b/tests/dictionaries_old/60extra_no_condition/00-base.xml
deleted file mode 100644
index 791dcd424..000000000
--- a/tests/dictionaries_old/60extra_no_condition/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_no_condition/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_no_condition/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 52089bf34..000000000
--- a/tests/dictionaries_old/60extra_no_condition/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
- Exportation de la base de ejabberd
-
-
-
- pre
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_no_condition/result/extra/00-base.yml b/tests/dictionaries_old/60extra_no_condition/result/extra/00-base.yml
new file mode 100644
index 000000000..47d02767d
--- /dev/null
+++ b/tests/dictionaries_old/60extra_no_condition/result/extra/00-base.yml
@@ -0,0 +1,21 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default: none
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_no_condition/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_no_condition/result/rougail/00-base.yml
new file mode 100644
index 000000000..4c7f61ce1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_no_condition/result/rougail/00-base.yml
@@ -0,0 +1,17 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ module_instancie:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_no_condition/tiramisu/base.py b/tests/dictionaries_old/60extra_no_condition/tiramisu/base.py
index fb19b7573..89fffd1fb 100644
--- a/tests/dictionaries_old/60extra_no_condition/tiramisu/base.py
+++ b/tests/dictionaries_old/60extra_no_condition/tiramisu/base.py
@@ -1,24 +1,36 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_5 = StrOption(name="module_instancie", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
option_9 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default="none", properties=frozenset({"mandatory", "normal"}))
option_10 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-option_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
-option_6 = OptionDescription(name="extra", doc="extra", children=[option_7])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_6])
+optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries_old/60extra_no_condition/tiramisu/multi.py b/tests/dictionaries_old/60extra_no_condition/tiramisu/multi.py
new file mode 100644
index 000000000..3de901b74
--- /dev/null
+++ b/tests/dictionaries_old/60extra_no_condition/tiramisu/multi.py
@@ -0,0 +1,48 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_4 = StrOption(name="module_instancie", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_6 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_7 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default="none", properties=frozenset({"mandatory", "normal"}))
+option_8 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_6, option_7, option_8], properties=frozenset({"normal"}))
+optiondescription_19 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18, optiondescription_19])
+option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"}))
+option_11 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_12 = StrOption(name="module_instancie", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="général", children=[option_10, option_11, option_12], properties=frozenset({"normal"}))
+optiondescription_21 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_9], properties=frozenset({"normal"}))
+option_14 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "normal"}))
+option_15 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default="none", properties=frozenset({"mandatory", "normal"}))
+option_16 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_13 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_14, option_15, option_16], properties=frozenset({"normal"}))
+optiondescription_22 = OptionDescription(name="extra", doc="extra", children=[optiondescription_13], properties=frozenset({"normal"}))
+optiondescription_20 = OptionDescription(name="2", doc="2", children=[optiondescription_21, optiondescription_22])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_20])
diff --git a/tests/dictionaries_old/60extra_no_condition/xml/00-base.xml b/tests/dictionaries_old/60extra_no_condition/xml/00-base.xml
new file mode 100644
index 000000000..3d6dcbc2c
--- /dev/null
+++ b/tests/dictionaries_old/60extra_no_condition/xml/00-base.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_no_condition/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_no_condition/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..c6d59a192
--- /dev/null
+++ b/tests/dictionaries_old/60extra_no_condition/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ Exportation de la base de ejabberd
+
+
+ none
+ daily
+ weekly
+ monthly
+ none
+
+
+ pre
+ pre
+ post
+
+
+
+
diff --git a/tests/dictionaries/60extra_no_condition/yml/00-base.yml b/tests/dictionaries_old/60extra_no_condition/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_no_condition/yml/00-base.yml
rename to tests/dictionaries_old/60extra_no_condition/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_no_condition/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_no_condition/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_no_condition/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_no_condition/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries_old/60extra_redefine/00-base.xml b/tests/dictionaries_old/60extra_redefine/00-base.xml
deleted file mode 100644
index 8c0f3365c..000000000
--- a/tests/dictionaries_old/60extra_redefine/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_redefine/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_redefine/extra_dirs/extra/00-base.xml
deleted file mode 100644
index a11e423b2..000000000
--- a/tests/dictionaries_old/60extra_redefine/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- Exportation de la base de ejabberd
-
-
-
- pre
-
-
-
-
-
- non
- activer_ejabberd
- none
- daily
- extra.ejabberd.day
-
-
-
diff --git a/tests/dictionaries_old/60extra_redefine/extra_dirs/extra/01-redefine.xml b/tests/dictionaries_old/60extra_redefine/extra_dirs/extra/01-redefine.xml
deleted file mode 100644
index 9103416e8..000000000
--- a/tests/dictionaries_old/60extra_redefine/extra_dirs/extra/01-redefine.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_redefine/result/extra/00-base.yml b/tests/dictionaries_old/60extra_redefine/result/extra/00-base.yml
new file mode 100644
index 000000000..83dfcc6c1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_redefine/result/extra/00-base.yml
@@ -0,0 +1,29 @@
+ejabberd:
+ description:
+ type: string
+ default: Exportation de la base de ejabberd
+ day:
+ type: choice
+ mandatory: true
+ default:
+ type: jinja
+ jinja: '{{ "non" | calc_multi_condition(condition_1=__activer_ejabberd, match="none",
+ mismatch="daily") }}'
+ params:
+ __activer_ejabberd:
+ type: variable
+ variable: __activer_ejabberd
+ propertyerror: false
+ choices:
+ - none
+ - daily
+ - weekly
+ - monthly
+ mode:
+ type: choice
+ mandatory: true
+ default: pre
+ choices:
+ - pre
+ - post
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_redefine/result/extra/01-redefine.yml b/tests/dictionaries_old/60extra_redefine/result/extra/01-redefine.yml
new file mode 100644
index 000000000..27c322342
--- /dev/null
+++ b/tests/dictionaries_old/60extra_redefine/result/extra/01-redefine.yml
@@ -0,0 +1,5 @@
+ejabberd:
+ description:
+ redefine: true
+ hidden: true
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_redefine/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_redefine/result/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_redefine/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_redefine/tiramisu/base.py b/tests/dictionaries_old/60extra_redefine/tiramisu/base.py
index 83b38a7ed..21ee73df6 100644
--- a/tests/dictionaries_old/60extra_redefine/tiramisu/base.py
+++ b/tests/dictionaries_old/60extra_redefine/tiramisu/base.py
@@ -1,23 +1,65 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from jinja2 import StrictUndefined, DictLoader
+from jinja2.sandbox import SandboxedEnvironment
+from rougail.annotator.variable import CONVERT_OPTION
+def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):
+ kw = {}
+ for key, value in kwargs.items():
+ if '.' in key:
+ c_kw = kw
+ path, var = key.rsplit('.', 1)
+ for subkey in path.split('.'):
+ c_kw = c_kw.setdefault(subkey, {})
+ c_kw[var] = value
+ else:
+ kw[key] = value
+ values = ENV.get_template(__internal_jinja).render(kw)
+ convert = CONVERT_OPTION[__internal_type].get('func', str)
+ if __internal_multi:
+ return [convert(val) for val in values.split(',')]
+ return convert(values)
+def valid_with_jinja(value, **kwargs):
+ kwargs[kwargs.pop('__internal_key')] = value
+ value = jinja_to_function(__internal_type='string', __internal_multi=False, **kwargs)
+ if value:
+ raise ValueError(value)
+func.jinja_to_function = jinja_to_function
+func.valid_with_jinja = valid_with_jinja
+dict_env = {}
+dict_env['extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}"
+ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
+ENV.compile_templates('jinja_caches', zip=None)
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_8 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_4, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_8 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.jinja_to_function, Params((), kwargs={'__internal_jinja': ParamValue(extra.ejabberd.day), '__internal_type': ParamValue(choice), '__internal_multi': ParamValue(False)})), properties=frozenset({"mandatory", "normal"}))
option_9 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
-option_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
-option_5 = OptionDescription(name="extra", doc="extra", children=[option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_5])
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries_old/60extra_redefine/tiramisu/multi.py b/tests/dictionaries_old/60extra_redefine/tiramisu/multi.py
new file mode 100644
index 000000000..ded1bb448
--- /dev/null
+++ b/tests/dictionaries_old/60extra_redefine/tiramisu/multi.py
@@ -0,0 +1,46 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_5 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_6 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_3, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_7 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_4 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_5, option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="extra", doc="extra", children=[optiondescription_4], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="1", doc="1", children=[optiondescription_16, optiondescription_17])
+option_9 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_10 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_8 = OptionDescription(name="general", doc="général", children=[option_9, option_10], properties=frozenset({"normal"}))
+optiondescription_19 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_8], properties=frozenset({"normal"}))
+option_12 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_13 = ChoiceOption(name="day", doc="day", values=('none', 'daily', 'weekly', 'monthly'), default=Calculation(func.calc_multi_condition, Params((ParamValue("non")), kwargs={'condition_1': ParamOption(option_10, notraisepropertyerror=True), 'match': ParamValue("none"), 'mismatch': ParamValue("daily")})), properties=frozenset({"mandatory", "normal"}))
+option_14 = ChoiceOption(name="mode", doc="mode", values=('pre', 'post'), default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_11 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_12, option_13, option_14], properties=frozenset({"normal"}))
+optiondescription_20 = OptionDescription(name="extra", doc="extra", children=[optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="2", doc="2", children=[optiondescription_19, optiondescription_20])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_15, optiondescription_18])
diff --git a/tests/dictionaries_old/60extra_redefine/xml/00-base.xml b/tests/dictionaries_old/60extra_redefine/xml/00-base.xml
new file mode 100644
index 000000000..cb25aa750
--- /dev/null
+++ b/tests/dictionaries_old/60extra_redefine/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_redefine/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_redefine/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..cd2c3dc4f
--- /dev/null
+++ b/tests/dictionaries_old/60extra_redefine/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ Exportation de la base de ejabberd
+
+
+ none
+ daily
+ weekly
+ monthly
+ none
+
+
+ pre
+ pre
+ post
+
+
+
+
+
+ non
+ activer_ejabberd
+ none
+ daily
+ extra.ejabberd.day
+
+
+
diff --git a/tests/dictionaries_old/60extra_redefine/xml/extra_dirs/extra/01-redefine.xml b/tests/dictionaries_old/60extra_redefine/xml/extra_dirs/extra/01-redefine.xml
new file mode 100644
index 000000000..2107f5be0
--- /dev/null
+++ b/tests/dictionaries_old/60extra_redefine/xml/extra_dirs/extra/01-redefine.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/60extra_redefine/yml/00-base.yml b/tests/dictionaries_old/60extra_redefine/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_redefine/yml/00-base.yml
rename to tests/dictionaries_old/60extra_redefine/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_redefine/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_redefine/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_redefine/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_redefine/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries/60extra_redefine/yml/extra_dirs/extra/01-redefine.yml b/tests/dictionaries_old/60extra_redefine/yml/extra_dirs/extra/01-redefine.yml
similarity index 100%
rename from tests/dictionaries/60extra_redefine/yml/extra_dirs/extra/01-redefine.yml
rename to tests/dictionaries_old/60extra_redefine/yml/extra_dirs/extra/01-redefine.yml
diff --git a/tests/dictionaries_old/60extra_variable_name_extra/00-base.xml b/tests/dictionaries_old/60extra_variable_name_extra/00-base.xml
deleted file mode 100644
index 8c0f3365c..000000000
--- a/tests/dictionaries_old/60extra_variable_name_extra/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_variable_name_extra/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_variable_name_extra/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 1b43cfb79..000000000
--- a/tests/dictionaries_old/60extra_variable_name_extra/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/60extra_variable_name_extra/result/extra/00-base.yml b/tests/dictionaries_old/60extra_variable_name_extra/result/extra/00-base.yml
new file mode 100644
index 000000000..86179e740
--- /dev/null
+++ b/tests/dictionaries_old/60extra_variable_name_extra/result/extra/00-base.yml
@@ -0,0 +1,2 @@
+extra: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_variable_name_extra/result/rougail/00-base.yml b/tests/dictionaries_old/60extra_variable_name_extra/result/rougail/00-base.yml
new file mode 100644
index 000000000..1a857b0d1
--- /dev/null
+++ b/tests/dictionaries_old/60extra_variable_name_extra/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60extra_variable_name_extra/tiramisu/base.py b/tests/dictionaries_old/60extra_variable_name_extra/tiramisu/base.py
index 1d72f3884..423a144f5 100644
--- a/tests/dictionaries_old/60extra_variable_name_extra/tiramisu/base.py
+++ b/tests/dictionaries_old/60extra_variable_name_extra/tiramisu/base.py
@@ -1,20 +1,31 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_6 = StrOption(name="extra", doc="extra", properties=frozenset({"normal"}))
-option_5 = OptionDescription(name="extra", doc="extra", children=[option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_5])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[], properties=frozenset({"expert"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries_old/60extra_variable_name_extra/tiramisu/multi.py b/tests/dictionaries_old/60extra_variable_name_extra/tiramisu/multi.py
new file mode 100644
index 000000000..a5e401882
--- /dev/null
+++ b/tests/dictionaries_old/60extra_variable_name_extra/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_3 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2, option_3], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_4 = StrOption(name="extra", doc="extra", properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="extra", doc="extra", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10, optiondescription_11])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+option_7 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="général", children=[option_6, option_7], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_8 = StrOption(name="extra", doc="extra", properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="extra", doc="extra", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="2", doc="2", children=[optiondescription_13, optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_12])
diff --git a/tests/dictionaries_old/60extra_variable_name_extra/xml/00-base.xml b/tests/dictionaries_old/60extra_variable_name_extra/xml/00-base.xml
new file mode 100644
index 000000000..cb25aa750
--- /dev/null
+++ b/tests/dictionaries_old/60extra_variable_name_extra/xml/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ non
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60extra_variable_name_extra/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60extra_variable_name_extra/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..93528ce57
--- /dev/null
+++ b/tests/dictionaries_old/60extra_variable_name_extra/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/tests/dictionaries/60extra_variable_name_extra/yml/00-base.yml b/tests/dictionaries_old/60extra_variable_name_extra/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_variable_name_extra/yml/00-base.yml
rename to tests/dictionaries_old/60extra_variable_name_extra/yml/00-base.yml
diff --git a/tests/dictionaries/60extra_variable_name_extra/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60extra_variable_name_extra/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60extra_variable_name_extra/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60extra_variable_name_extra/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries_old/60familyaction/00-base.xml b/tests/dictionaries_old/60familyaction/00-base.xml
deleted file mode 100644
index 849130906..000000000
--- a/tests/dictionaries_old/60familyaction/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/60familyaction/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60familyaction/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 9fcc64782..000000000
--- a/tests/dictionaries_old/60familyaction/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- 0
-
-
-
-
diff --git a/tests/dictionaries_old/60familyaction/result/extra/00-base.yml b/tests/dictionaries_old/60familyaction/result/extra/00-base.yml
new file mode 100644
index 000000000..2ccc3ff50
--- /dev/null
+++ b/tests/dictionaries_old/60familyaction/result/extra/00-base.yml
@@ -0,0 +1,6 @@
+test:
+ delay:
+ type: number
+ description: délai en minutes avant lancement
+ default: 0
+version: '1.0'
diff --git a/tests/dictionaries_old/60familyaction/result/rougail/00-base.yml b/tests/dictionaries_old/60familyaction/result/rougail/00-base.yml
new file mode 100644
index 000000000..1085cc1cc
--- /dev/null
+++ b/tests/dictionaries_old/60familyaction/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60familyaction/tiramisu/base.py b/tests/dictionaries_old/60familyaction/tiramisu/base.py
index bcc82cd28..6d9060651 100644
--- a/tests/dictionaries_old/60familyaction/tiramisu/base.py
+++ b/tests/dictionaries_old/60familyaction/tiramisu/base.py
@@ -1,20 +1,32 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_6 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
-option_5 = OptionDescription(name="test", doc="test", children=[option_6], properties=frozenset({"normal"}))
-option_4 = OptionDescription(name="extra", doc="extra", children=[option_5])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
+optiondescription_5 = OptionDescription(name="test", doc="test", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries_old/60familyaction/tiramisu/multi.py b/tests/dictionaries_old/60familyaction/tiramisu/multi.py
new file mode 100644
index 000000000..c2d17cefc
--- /dev/null
+++ b/tests/dictionaries_old/60familyaction/tiramisu/multi.py
@@ -0,0 +1,40 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_4 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="test", doc="test", children=[option_4], properties=frozenset({"normal"}))
+optiondescription_11 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10, optiondescription_11])
+option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="général", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5], properties=frozenset({"normal"}))
+option_8 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="test", doc="test", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="2", doc="2", children=[optiondescription_13, optiondescription_14])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_12])
diff --git a/tests/dictionaries_old/60familyaction/xml/00-base.xml b/tests/dictionaries_old/60familyaction/xml/00-base.xml
new file mode 100644
index 000000000..f0576995a
--- /dev/null
+++ b/tests/dictionaries_old/60familyaction/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60familyaction/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60familyaction/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..102f3af8f
--- /dev/null
+++ b/tests/dictionaries_old/60familyaction/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ 0
+
+
+
+
diff --git a/tests/dictionaries/60familyaction/yml/00-base.yml b/tests/dictionaries_old/60familyaction/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60familyaction/yml/00-base.yml
rename to tests/dictionaries_old/60familyaction/yml/00-base.yml
diff --git a/tests/dictionaries/60familyaction/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60familyaction/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60familyaction/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60familyaction/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries_old/60familyaction_mandatory/00-base.xml b/tests/dictionaries_old/60familyaction_mandatory/00-base.xml
deleted file mode 100644
index 849130906..000000000
--- a/tests/dictionaries_old/60familyaction_mandatory/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/60familyaction_mandatory/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60familyaction_mandatory/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 35fecda4e..000000000
--- a/tests/dictionaries_old/60familyaction_mandatory/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
- 0
-
-
-
-
-
diff --git a/tests/dictionaries_old/60familyaction_mandatory/result/extra/00-base.yml b/tests/dictionaries_old/60familyaction_mandatory/result/extra/00-base.yml
new file mode 100644
index 000000000..21c871450
--- /dev/null
+++ b/tests/dictionaries_old/60familyaction_mandatory/result/extra/00-base.yml
@@ -0,0 +1,10 @@
+test:
+ delay:
+ type: number
+ description: délai en minutes avant lancement
+ default: 0
+ day:
+ type: number
+ description: day avant lancement
+ mandatory: true
+version: '1.0'
diff --git a/tests/dictionaries_old/60familyaction_mandatory/result/rougail/00-base.yml b/tests/dictionaries_old/60familyaction_mandatory/result/rougail/00-base.yml
new file mode 100644
index 000000000..1085cc1cc
--- /dev/null
+++ b/tests/dictionaries_old/60familyaction_mandatory/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/60familyaction_mandatory/tiramisu/base.py b/tests/dictionaries_old/60familyaction_mandatory/tiramisu/base.py
index 247f504e4..c22837f9f 100644
--- a/tests/dictionaries_old/60familyaction_mandatory/tiramisu/base.py
+++ b/tests/dictionaries_old/60familyaction_mandatory/tiramisu/base.py
@@ -1,21 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_6 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
option_7 = IntOption(name="day", doc="day avant lancement", properties=frozenset({"basic", "mandatory"}))
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_7], properties=frozenset({"basic"}))
-option_4 = OptionDescription(name="extra", doc="extra", children=[option_5])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
+optiondescription_5 = OptionDescription(name="test", doc="test", children=[option_6, option_7], properties=frozenset({"basic"}))
+optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"basic"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries_old/60familyaction_mandatory/tiramisu/multi.py b/tests/dictionaries_old/60familyaction_mandatory/tiramisu/multi.py
new file mode 100644
index 000000000..be8923e29
--- /dev/null
+++ b/tests/dictionaries_old/60familyaction_mandatory/tiramisu/multi.py
@@ -0,0 +1,42 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_4 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+option_5 = IntOption(name="day", doc="day avant lancement", properties=frozenset({"basic", "mandatory"}))
+optiondescription_3 = OptionDescription(name="test", doc="test", children=[option_4, option_5], properties=frozenset({"basic"}))
+optiondescription_13 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3], properties=frozenset({"basic"}))
+optiondescription_11 = OptionDescription(name="1", doc="1", children=[optiondescription_12, optiondescription_13])
+option_7 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="general", doc="général", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_9 = IntOption(name="delay", doc="délai en minutes avant lancement", default=0, properties=frozenset({"mandatory", "normal"}))
+option_10 = IntOption(name="day", doc="day avant lancement", properties=frozenset({"basic", "mandatory"}))
+optiondescription_8 = OptionDescription(name="test", doc="test", children=[option_9, option_10], properties=frozenset({"basic"}))
+optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_8], properties=frozenset({"basic"}))
+optiondescription_14 = OptionDescription(name="2", doc="2", children=[optiondescription_15, optiondescription_16])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11, optiondescription_14])
diff --git a/tests/dictionaries_old/60familyaction_mandatory/xml/00-base.xml b/tests/dictionaries_old/60familyaction_mandatory/xml/00-base.xml
new file mode 100644
index 000000000..f0576995a
--- /dev/null
+++ b/tests/dictionaries_old/60familyaction_mandatory/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ non
+
+
+
+
diff --git a/tests/dictionaries_old/60familyaction_mandatory/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/60familyaction_mandatory/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..5a123419b
--- /dev/null
+++ b/tests/dictionaries_old/60familyaction_mandatory/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+ 0
+
+
+
+
+
diff --git a/tests/dictionaries/60familyaction_mandatory/yml/00-base.yml b/tests/dictionaries_old/60familyaction_mandatory/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/60familyaction_mandatory/yml/00-base.yml
rename to tests/dictionaries_old/60familyaction_mandatory/yml/00-base.yml
diff --git a/tests/dictionaries/60familyaction_mandatory/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/60familyaction_mandatory/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/60familyaction_mandatory/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/60familyaction_mandatory/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries_old/61extra_auto_freeze/00-base.xml b/tests/dictionaries_old/61extra_auto_freeze/00-base.xml
deleted file mode 100644
index 0ab77a367..000000000
--- a/tests/dictionaries_old/61extra_auto_freeze/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/61extra_auto_freeze/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/61extra_auto_freeze/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 3d92c2c93..000000000
--- a/tests/dictionaries_old/61extra_auto_freeze/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- pre
-
-
-
-
diff --git a/tests/dictionaries_old/61extra_auto_freeze/result/extra/00-base.yml b/tests/dictionaries_old/61extra_auto_freeze/result/extra/00-base.yml
new file mode 100644
index 000000000..ad6bfb8b4
--- /dev/null
+++ b/tests/dictionaries_old/61extra_auto_freeze/result/extra/00-base.yml
@@ -0,0 +1,5 @@
+ejabberd:
+ mode:
+ type: string
+ default: pre
+version: '1.0'
diff --git a/tests/dictionaries_old/61extra_auto_freeze/result/rougail/00-base.yml b/tests/dictionaries_old/61extra_auto_freeze/result/rougail/00-base.yml
new file mode 100644
index 000000000..2bc290d44
--- /dev/null
+++ b/tests/dictionaries_old/61extra_auto_freeze/result/rougail/00-base.yml
@@ -0,0 +1,11 @@
+general:
+ description: général
+ server_deployed:
+ type: boolean
+ description: No change
+ activer_ejabberd:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/61extra_auto_freeze/tiramisu/base.py b/tests/dictionaries_old/61extra_auto_freeze/tiramisu/base.py
index 2c63194bb..5d7ff6088 100644
--- a/tests/dictionaries_old/61extra_auto_freeze/tiramisu/base.py
+++ b/tests/dictionaries_old/61extra_auto_freeze/tiramisu/base.py
@@ -1,21 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = BoolOption(name="server_deployed", doc="No change", default=True, properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_7 = StrOption(name="mode", doc="mode", default="pre", properties=frozenset({"basic", "force_store_value", "mandatory", Calculation(func.calc_value, Params(ParamValue('frozen'), kwargs={'condition': ParamOption(option_3, todict=True, notraisepropertyerror=True), 'expected': ParamValue(True)}))}))
-option_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7], properties=frozenset({"basic"}))
-option_5 = OptionDescription(name="extra", doc="extra", children=[option_6])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_5])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_7 = StrOption(name="mode", doc="mode", default="pre", properties=frozenset({"mandatory", "normal"}))
+optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/61extra_auto_freeze/tiramisu/multi.py b/tests/dictionaries_old/61extra_auto_freeze/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/61extra_auto_freeze/tiramisu/multi.py
rename to tests/dictionaries_old/61extra_auto_freeze/tiramisu/multi.py
diff --git a/tests/dictionaries/61extra_auto_freeze/xml/00-base.xml b/tests/dictionaries_old/61extra_auto_freeze/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/61extra_auto_freeze/xml/00-base.xml
rename to tests/dictionaries_old/61extra_auto_freeze/xml/00-base.xml
diff --git a/tests/dictionaries/61extra_auto_freeze/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/61extra_auto_freeze/xml/extra_dirs/extra/00-base.xml
similarity index 100%
rename from tests/dictionaries/61extra_auto_freeze/xml/extra_dirs/extra/00-base.xml
rename to tests/dictionaries_old/61extra_auto_freeze/xml/extra_dirs/extra/00-base.xml
diff --git a/tests/dictionaries/61extra_auto_freeze/yml/00-base.yml b/tests/dictionaries_old/61extra_auto_freeze/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/61extra_auto_freeze/yml/00-base.yml
rename to tests/dictionaries_old/61extra_auto_freeze/yml/00-base.yml
diff --git a/tests/dictionaries/61extra_auto_freeze/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/61extra_auto_freeze/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/61extra_auto_freeze/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/61extra_auto_freeze/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries_old/61extra_dyn/00-base.xml b/tests/dictionaries_old/61extra_dyn/00-base.xml
deleted file mode 100644
index 95b534064..000000000
--- a/tests/dictionaries_old/61extra_dyn/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- a
-
-
-
-
diff --git a/tests/dictionaries_old/61extra_dyn/__init__.py b/tests/dictionaries_old/61extra_dyn/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/61extra_dyn/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/61extra_dyn/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 84709bfea..000000000
--- a/tests/dictionaries_old/61extra_dyn/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/61extra_dyn/makedict/after.json b/tests/dictionaries_old/61extra_dyn/makedict/after.json
deleted file mode 100644
index 648ee5b1a..000000000
--- a/tests/dictionaries_old/61extra_dyn/makedict/after.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "rougail.general.varname": {
- "owner": "default",
- "value": [
- "a"
- ]
- },
- "extra.ejabberda.modea": {
- "owner": "default",
- "value": null
- }
-}
diff --git a/tests/dictionaries_old/61extra_dyn/makedict/base.json b/tests/dictionaries_old/61extra_dyn/makedict/base.json
deleted file mode 100644
index 5315f6116..000000000
--- a/tests/dictionaries_old/61extra_dyn/makedict/base.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "rougail.general.varname": [
- "a"
- ],
- "extra.ejabberda.modea": null
-}
diff --git a/tests/dictionaries_old/61extra_dyn/makedict/before.json b/tests/dictionaries_old/61extra_dyn/makedict/before.json
deleted file mode 100644
index 648ee5b1a..000000000
--- a/tests/dictionaries_old/61extra_dyn/makedict/before.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "rougail.general.varname": {
- "owner": "default",
- "value": [
- "a"
- ]
- },
- "extra.ejabberda.modea": {
- "owner": "default",
- "value": null
- }
-}
diff --git a/tests/dictionaries_old/61extra_dyn/tiramisu/base.py b/tests/dictionaries_old/61extra_dyn/tiramisu/base.py
deleted file mode 100644
index a62391d70..000000000
--- a/tests/dictionaries_old/61extra_dyn/tiramisu/base.py
+++ /dev/null
@@ -1,21 +0,0 @@
-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 tiramisu4 import *
-except:
- from tiramisu import *
-from rougail.tiramisu import ConvertDynOptionDescription
-option_3 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_6 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
-option_5 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func.calc_value, Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"normal"}))
-option_4 = OptionDescription(name="extra", doc="extra", children=[option_5])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
diff --git a/tests/dictionaries_old/61extra_dyn_extra/00-base.xml b/tests/dictionaries_old/61extra_dyn_extra/00-base.xml
deleted file mode 100644
index 95b534064..000000000
--- a/tests/dictionaries_old/61extra_dyn_extra/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- a
-
-
-
-
diff --git a/tests/dictionaries_old/61extra_dyn_extra/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/61extra_dyn_extra/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 96ab370d3..000000000
--- a/tests/dictionaries_old/61extra_dyn_extra/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- a
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/61extra_dyn_extra/result/extra/00-base.yml b/tests/dictionaries_old/61extra_dyn_extra/result/extra/00-base.yml
new file mode 100644
index 000000000..6478b3c0f
--- /dev/null
+++ b/tests/dictionaries_old/61extra_dyn_extra/result/extra/00-base.yml
@@ -0,0 +1,14 @@
+general:
+ description: général
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - a
+ejabberd:
+ type: dynamic
+ variable: extra.general.varname
+ mode:
+ type: string
+version: '1.0'
diff --git a/tests/dictionaries_old/61extra_dyn_extra/result/rougail/00-base.yml b/tests/dictionaries_old/61extra_dyn_extra/result/rougail/00-base.yml
new file mode 100644
index 000000000..2926dc5df
--- /dev/null
+++ b/tests/dictionaries_old/61extra_dyn_extra/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+general:
+ description: général
+ varname:
+ type: string
+ description: No change
+ multi: true
+ default:
+ - a
+version: '1.0'
diff --git a/tests/dictionaries_old/61extra_dyn_extra/tiramisu/base.py b/tests/dictionaries_old/61extra_dyn_extra/tiramisu/base.py
index 6df61b371..87d1f479e 100644
--- a/tests/dictionaries_old/61extra_dyn_extra/tiramisu/base.py
+++ b/tests/dictionaries_old/61extra_dyn_extra/tiramisu/base.py
@@ -1,23 +1,34 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-from rougail.tiramisu import ConvertDynOptionDescription
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_6 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
-option_5 = OptionDescription(name="general", doc="général", children=[option_6], properties=frozenset({"normal"}))
+optiondescription_5 = OptionDescription(name="general", doc="général", children=[option_6], properties=frozenset({"normal"}))
option_8 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
-option_7 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func.calc_value, Params((ParamOption(option_6, notraisepropertyerror=True)))), children=[option_8], properties=frozenset({"normal"}))
-option_4 = OptionDescription(name="extra", doc="extra", children=[option_5, option_7])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
+optiondescription_7 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func.calc_value, Params((ParamOption(option_6, notraisepropertyerror=True)))), children=[option_8], properties=frozenset({"normal"}))
+optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5, optiondescription_7], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries_old/61extra_dyn_extra/tiramisu/multi.py b/tests/dictionaries_old/61extra_dyn_extra/tiramisu/multi.py
new file mode 100644
index 000000000..47c6750db
--- /dev/null
+++ b/tests/dictionaries_old/61extra_dyn_extra/tiramisu/multi.py
@@ -0,0 +1,45 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+from rougail.tiramisu import ConvertDynOptionDescription
+option_2 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="general", doc="général", children=[option_2], properties=frozenset({"normal"}))
+optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"normal"}))
+option_4 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"normal"}))
+option_6 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
+optiondescription_5 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func.calc_value, Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"normal"}))
+optiondescription_15 = OptionDescription(name="extra", doc="extra", children=[optiondescription_3, optiondescription_5], properties=frozenset({"normal"}))
+optiondescription_13 = OptionDescription(name="1", doc="1", children=[optiondescription_14, optiondescription_15])
+option_8 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_7 = OptionDescription(name="general", doc="général", children=[option_8], properties=frozenset({"normal"}))
+optiondescription_17 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_7], properties=frozenset({"normal"}))
+option_10 = StrOption(name="varname", doc="No change", multi=True, default=['a'], default_multi="a", properties=frozenset({"mandatory", "normal"}))
+optiondescription_9 = OptionDescription(name="general", doc="général", children=[option_10], properties=frozenset({"normal"}))
+option_12 = StrOption(name="mode", doc="mode", properties=frozenset({"normal"}))
+optiondescription_11 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func.calc_value, Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[option_12], properties=frozenset({"normal"}))
+optiondescription_18 = OptionDescription(name="extra", doc="extra", children=[optiondescription_9, optiondescription_11], properties=frozenset({"normal"}))
+optiondescription_16 = OptionDescription(name="2", doc="2", children=[optiondescription_17, optiondescription_18])
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_16])
diff --git a/tests/dictionaries_old/61extra_dyn_extra/xml/00-base.xml b/tests/dictionaries_old/61extra_dyn_extra/xml/00-base.xml
new file mode 100644
index 000000000..aeb834270
--- /dev/null
+++ b/tests/dictionaries_old/61extra_dyn_extra/xml/00-base.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ a
+
+
+
+
diff --git a/tests/dictionaries_old/61extra_dyn_extra/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/61extra_dyn_extra/xml/extra_dirs/extra/00-base.xml
new file mode 100644
index 000000000..ec77ed419
--- /dev/null
+++ b/tests/dictionaries_old/61extra_dyn_extra/xml/extra_dirs/extra/00-base.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ a
+
+
+
+
+
+
+
diff --git a/tests/dictionaries/61extra_dyn/yml/00-base.yml b/tests/dictionaries_old/61extra_dyn_extra/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/61extra_dyn/yml/00-base.yml
rename to tests/dictionaries_old/61extra_dyn_extra/yml/00-base.yml
diff --git a/tests/dictionaries/61extra_dyn_extra/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/61extra_dyn_extra/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/61extra_dyn_extra/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/61extra_dyn_extra/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries_old/70container_files/00-base.xml b/tests/dictionaries_old/70container_files/00-base.xml
deleted file mode 100644
index 48ce7ce04..000000000
--- a/tests/dictionaries_old/70container_files/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- /etc/mailname
- /rougail.conf
-
-
-
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/70container_files/makedict/after.json b/tests/dictionaries_old/70container_files/makedict/after.json
index 0329a8b51..7bda84dda 100644
--- a/tests/dictionaries_old/70container_files/makedict/after.json
+++ b/tests/dictionaries_old/70container_files/makedict/after.json
@@ -3,27 +3,35 @@
"owner": "default",
"value": "oui"
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.files.rougail_conf.name": {
+ "services.test_service.files.rougail_conf.name": {
"owner": "default",
"value": "/rougail.conf"
},
- "services.test.files.rougail_conf.activate": {
+ "services.test_service.files.rougail_conf.source": {
+ "owner": "default",
+ "value": "rougail.conf"
+ },
+ "services.test_service.files.rougail_conf.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_files/makedict/base.json b/tests/dictionaries_old/70container_files/makedict/base.json
index ab53f2b82..0ac00793a 100644
--- a/tests/dictionaries_old/70container_files/makedict/base.json
+++ b/tests/dictionaries_old/70container_files/makedict/base.json
@@ -1,9 +1,11 @@
{
"rougail.general.mode_conteneur_actif": "oui",
- "services.test.files.mailname.name": "/etc/mailname",
- "services.test.files.mailname.activate": true,
- "services.test.files.rougail_conf.name": "/rougail.conf",
- "services.test.files.rougail_conf.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.mailname.name": "/etc/mailname",
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.files.rougail_conf.name": "/rougail.conf",
+ "services.test_service.files.rougail_conf.source": "rougail.conf",
+ "services.test_service.files.rougail_conf.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70container_files/makedict/before.json b/tests/dictionaries_old/70container_files/makedict/before.json
index 0329a8b51..7bda84dda 100644
--- a/tests/dictionaries_old/70container_files/makedict/before.json
+++ b/tests/dictionaries_old/70container_files/makedict/before.json
@@ -3,27 +3,35 @@
"owner": "default",
"value": "oui"
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.files.rougail_conf.name": {
+ "services.test_service.files.rougail_conf.name": {
"owner": "default",
"value": "/rougail.conf"
},
- "services.test.files.rougail_conf.activate": {
+ "services.test_service.files.rougail_conf.source": {
+ "owner": "default",
+ "value": "rougail.conf"
+ },
+ "services.test_service.files.rougail_conf.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_files/result/etc/mailname b/tests/dictionaries_old/70container_files/result/etc/mailname
deleted file mode 100644
index bd51bf63f..000000000
--- a/tests/dictionaries_old/70container_files/result/etc/mailname
+++ /dev/null
@@ -1 +0,0 @@
-oui
diff --git a/tests/dictionaries_old/70container_files/result/rougail.conf b/tests/dictionaries_old/70container_files/result/rougail.conf
deleted file mode 100644
index b8f8a226c..000000000
--- a/tests/dictionaries_old/70container_files/result/rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/share/factory/etc/mailname
-z /etc/mailname - - - - -
diff --git a/tests/dictionaries_old/70container_files/result/rougail/00-base.yml b/tests/dictionaries_old/70container_files/result/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries_old/70container_files/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_files/result/services/00-base.yml b/tests/dictionaries_old/70container_files/result/services/00-base.yml
new file mode 100644
index 000000000..5e5dcb3e3
--- /dev/null
+++ b/tests/dictionaries_old/70container_files/result/services/00-base.yml
@@ -0,0 +1,5 @@
+test.service:
+ files:
+ /etc/mailname: {}
+ /rougail.conf: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_files/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70container_files/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 46697e03a..000000000
--- a/tests/dictionaries_old/70container_files/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
-z /etc/mailname - - - - -
diff --git a/tests/dictionaries_old/70container_files/tiramisu/base.py b/tests/dictionaries_old/70container_files/tiramisu/base.py
index b243004ef..431ca69dd 100644
--- a/tests/dictionaries_old/70container_files/tiramisu/base.py
+++ b/tests/dictionaries_old/70container_files/tiramisu/base.py
@@ -1,30 +1,43 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9])
-option_7.impl_set_information('source', "mailname")
-option_11 = FilenameOption(name="name", doc="name", default="/rougail.conf")
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = OptionDescription(name="rougail_conf", doc="rougail.conf", children=[option_11, option_12])
-option_10.impl_set_information('source', "rougail.conf")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_10])
-option_13 = BoolOption(name="activate", doc="activate", default=True)
-option_14 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_13, option_14])
-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])
+option_9 = FilenameOption(name="source", doc="source", default="/etc/mailname")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/rougail.conf")
+option_13 = FilenameOption(name="source", doc="source", default="/rougail.conf")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="rougail_conf", doc="rougail_conf", children=[option_12, option_13, option_14])
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_15, option_16])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70container_files/tiramisu/multi.py b/tests/dictionaries_old/70container_files/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70container_files/tiramisu/multi.py
rename to tests/dictionaries_old/70container_files/tiramisu/multi.py
diff --git a/tests/dictionaries_old/70container_files/tmpl/rougail.conf b/tests/dictionaries_old/70container_files/tmpl/rougail.conf
index cd853a0e9..b023342ea 100644
--- a/tests/dictionaries_old/70container_files/tmpl/rougail.conf
+++ b/tests/dictionaries_old/70container_files/tmpl/rougail.conf
@@ -2,7 +2,7 @@
%if %%hasattr(%%service, 'files')
%for %%file in %%service.files
%if %%file.name != %%rougail_filename and %%hasattr(%%file, 'activate') and %%file.activate == True
-C %%file.name %%file.mode %%file.owner %%file.group - /usr/local/share/factory%%file.name
+C %%file.name 0%%file.mode %%file.owner %%file.group - /usr/local/share/factory%%file.name
z %%file.name - - - - -
%end if
%end for
diff --git a/tests/dictionaries/70container_files/xml/00-base.xml b/tests/dictionaries_old/70container_files/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70container_files/xml/00-base.xml
rename to tests/dictionaries_old/70container_files/xml/00-base.xml
diff --git a/tests/dictionaries/70container_files/yml/00-base.yml b/tests/dictionaries_old/70container_files/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70container_files/yml/00-base.yml
rename to tests/dictionaries_old/70container_files/yml/00-base.yml
diff --git a/tests/dictionaries_old/70container_files_symlink_multi/00-base.xml b/tests/dictionaries_old/70container_files_symlink_multi/00-base.xml
deleted file mode 100644
index 64cdcb1a3..000000000
--- a/tests/dictionaries_old/70container_files_symlink_multi/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- file_name
- file_name2
-
-
-
-
- /etc/mailname
- /etc/mailname2
-
-
- /etc/mailname3
- /etc/mailname4
-
-
-
diff --git a/tests/dictionaries_old/70container_files_symlink_multi/makedict/after.json b/tests/dictionaries_old/70container_files_symlink_multi/makedict/after.json
index 38b626a10..83931d921 100644
--- a/tests/dictionaries_old/70container_files_symlink_multi/makedict/after.json
+++ b/tests/dictionaries_old/70container_files_symlink_multi/makedict/after.json
@@ -13,33 +13,41 @@
"/etc/mailname4"
]
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": [
"/etc/mailname",
"/etc/mailname2"
]
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.files.mailname2.name": {
+ "services.test_service.files.mailname2.name": {
"owner": "default",
"value": [
"/etc/mailname3",
"/etc/mailname4"
]
},
- "services.test.files.mailname2.activate": {
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_files_symlink_multi/makedict/base.json b/tests/dictionaries_old/70container_files_symlink_multi/makedict/base.json
index ca49f33b5..5bea627c6 100644
--- a/tests/dictionaries_old/70container_files_symlink_multi/makedict/base.json
+++ b/tests/dictionaries_old/70container_files_symlink_multi/makedict/base.json
@@ -7,16 +7,18 @@
"/etc/mailname3",
"/etc/mailname4"
],
- "services.test.files.mailname.name": [
+ "services.test_service.files.mailname.name": [
"/etc/mailname",
"/etc/mailname2"
],
- "services.test.files.mailname.activate": true,
- "services.test.files.mailname2.name": [
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.files.mailname2.name": [
"/etc/mailname3",
"/etc/mailname4"
],
- "services.test.files.mailname2.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.mailname2.source": "mailname2",
+ "services.test_service.files.mailname2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70container_files_symlink_multi/makedict/before.json b/tests/dictionaries_old/70container_files_symlink_multi/makedict/before.json
index 38b626a10..83931d921 100644
--- a/tests/dictionaries_old/70container_files_symlink_multi/makedict/before.json
+++ b/tests/dictionaries_old/70container_files_symlink_multi/makedict/before.json
@@ -13,33 +13,41 @@
"/etc/mailname4"
]
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": [
"/etc/mailname",
"/etc/mailname2"
]
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.files.mailname2.name": {
+ "services.test_service.files.mailname2.name": {
"owner": "default",
"value": [
"/etc/mailname3",
"/etc/mailname4"
]
},
- "services.test.files.mailname2.activate": {
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_files_symlink_multi/result/etc/mailname b/tests/dictionaries_old/70container_files_symlink_multi/result/etc/mailname
deleted file mode 100644
index 1a03818dc..000000000
--- a/tests/dictionaries_old/70container_files_symlink_multi/result/etc/mailname
+++ /dev/null
@@ -1 +0,0 @@
-/etc/mailname
diff --git a/tests/dictionaries_old/70container_files_symlink_multi/result/etc/mailname2 b/tests/dictionaries_old/70container_files_symlink_multi/result/etc/mailname2
deleted file mode 100644
index 03e217966..000000000
--- a/tests/dictionaries_old/70container_files_symlink_multi/result/etc/mailname2
+++ /dev/null
@@ -1 +0,0 @@
-/etc/mailname2
diff --git a/tests/dictionaries_old/70container_files_symlink_multi/result/etc/mailname3 b/tests/dictionaries_old/70container_files_symlink_multi/result/etc/mailname3
deleted file mode 100644
index 2585efaa0..000000000
--- a/tests/dictionaries_old/70container_files_symlink_multi/result/etc/mailname3
+++ /dev/null
@@ -1 +0,0 @@
-/etc/mailname3
diff --git a/tests/dictionaries_old/70container_files_symlink_multi/result/etc/mailname4 b/tests/dictionaries_old/70container_files_symlink_multi/result/etc/mailname4
deleted file mode 100644
index d58aef4bf..000000000
--- a/tests/dictionaries_old/70container_files_symlink_multi/result/etc/mailname4
+++ /dev/null
@@ -1 +0,0 @@
-/etc/mailname4
diff --git a/tests/dictionaries_old/70container_files_symlink_multi/result/rougail/00-base.yml b/tests/dictionaries_old/70container_files_symlink_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..c49cf0f1b
--- /dev/null
+++ b/tests/dictionaries_old/70container_files_symlink_multi/result/rougail/00-base.yml
@@ -0,0 +1,13 @@
+file_name:
+ type: filename
+ multi: true
+ default:
+ - /etc/mailname
+ - /etc/mailname2
+file_name2:
+ type: filename
+ multi: true
+ default:
+ - /etc/mailname3
+ - /etc/mailname4
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_files_symlink_multi/result/services/00-base.yml b/tests/dictionaries_old/70container_files_symlink_multi/result/services/00-base.yml
new file mode 100644
index 000000000..7da3c0b5d
--- /dev/null
+++ b/tests/dictionaries_old/70container_files_symlink_multi/result/services/00-base.yml
@@ -0,0 +1,10 @@
+test.service:
+ files:
+ rougail.file_name:
+ source: mailname
+ type: variable
+ rougail.file_name2:
+ source: mailname2
+ engine: jinja
+ type: variable
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_files_symlink_multi/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70container_files_symlink_multi/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 95445abe3..000000000
--- a/tests/dictionaries_old/70container_files_symlink_multi/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
-z /etc/mailname - - - - -
-C /etc/mailname2 0644 root root - /usr/local/lib/etc/mailname2
-z /etc/mailname2 - - - - -
-C /etc/mailname3 0644 root root - /usr/local/lib/etc/mailname3
-z /etc/mailname3 - - - - -
-C /etc/mailname4 0644 root root - /usr/local/lib/etc/mailname4
-z /etc/mailname4 - - - - -
diff --git a/tests/dictionaries_old/70container_files_symlink_multi/tiramisu/base.py b/tests/dictionaries_old/70container_files_symlink_multi/tiramisu/base.py
index daa9d8061..2e832d1ce 100644
--- a/tests/dictionaries_old/70container_files_symlink_multi/tiramisu/base.py
+++ b/tests/dictionaries_old/70container_files_symlink_multi/tiramisu/base.py
@@ -1,31 +1,44 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = FilenameOption(name="file_name", doc="file_name", multi=True, default=['/etc/mailname', '/etc/mailname2'], default_multi="/etc/mailname", properties=frozenset({"mandatory", "normal"}))
option_3 = FilenameOption(name="file_name2", doc="file_name2", multi=True, default=['/etc/mailname3', '/etc/mailname4'], default_multi="/etc/mailname3", properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_8 = SymLinkOption(name="name", opt=option_2)
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9])
-option_7.impl_set_information('source', "mailname")
-option_11 = SymLinkOption(name="name", opt=option_3)
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = OptionDescription(name="mailname2", doc="mailname2", children=[option_11, option_12])
-option_10.impl_set_information('engine', "jinja")
-option_10.impl_set_information('source', "mailname2")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_10])
-option_13 = BoolOption(name="activate", doc="activate", default=True)
-option_14 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_13, option_14])
-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])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
+option_8 = FilenameOption(name="name", doc="name", default="rougail.file_name")
+option_9 = FilenameOption(name="source", doc="source", default="rougail.file_name")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="rougail.file_name2")
+option_13 = FilenameOption(name="source", doc="source", default="rougail.file_name2")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="mailname2", doc="mailname2", children=[option_12, option_13, option_14])
+optiondescription_11.impl_set_information('engine', "jinja")
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_15, option_16])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70container_files_symlink_multi/tiramisu/multi.py b/tests/dictionaries_old/70container_files_symlink_multi/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70container_files_symlink_multi/tiramisu/multi.py
rename to tests/dictionaries_old/70container_files_symlink_multi/tiramisu/multi.py
diff --git a/tests/dictionaries/70container_files_symlink_multi/xml/00-base.xml b/tests/dictionaries_old/70container_files_symlink_multi/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70container_files_symlink_multi/xml/00-base.xml
rename to tests/dictionaries_old/70container_files_symlink_multi/xml/00-base.xml
diff --git a/tests/dictionaries/70container_files_symlink_multi/yml/00-base.yml b/tests/dictionaries_old/70container_files_symlink_multi/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70container_files_symlink_multi/yml/00-base.yml
rename to tests/dictionaries_old/70container_files_symlink_multi/yml/00-base.yml
diff --git a/tests/dictionaries_old/70container_files_symlink_multi_variable/00-base.xml b/tests/dictionaries_old/70container_files_symlink_multi_variable/00-base.xml
deleted file mode 100644
index ea1350515..000000000
--- a/tests/dictionaries_old/70container_files_symlink_multi_variable/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- file_name
- file_name2
-
-
-
-
- /etc/mailname
- /etc/mailname2
-
-
- /etc/mailname3
- /etc/mailname4
-
-
- mailname
- mailname2
-
-
-
diff --git a/tests/dictionaries_old/70container_files_symlink_multi_variable/makedict/after.json b/tests/dictionaries_old/70container_files_symlink_multi_variable/makedict/after.json
index 85f109144..8cc22a152 100644
--- a/tests/dictionaries_old/70container_files_symlink_multi_variable/makedict/after.json
+++ b/tests/dictionaries_old/70container_files_symlink_multi_variable/makedict/after.json
@@ -20,47 +20,55 @@
"mailname2"
]
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": [
"/etc/mailname",
"/etc/mailname2"
]
},
- "services.test.files.mailname.variable": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.variable": {
"owner": "default",
"value": [
"mailname",
"mailname2"
]
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.files.mailname2.name": {
+ "services.test_service.files.mailname2.name": {
"owner": "default",
"value": [
"/etc/mailname3",
"/etc/mailname4"
]
},
- "services.test.files.mailname2.variable": {
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.variable": {
"owner": "default",
"value": [
"mailname",
"mailname2"
]
},
- "services.test.files.mailname2.activate": {
+ "services.test_service.files.mailname2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_files_symlink_multi_variable/makedict/base.json b/tests/dictionaries_old/70container_files_symlink_multi_variable/makedict/base.json
index 3d2fce359..2f4d119d9 100644
--- a/tests/dictionaries_old/70container_files_symlink_multi_variable/makedict/base.json
+++ b/tests/dictionaries_old/70container_files_symlink_multi_variable/makedict/base.json
@@ -11,24 +11,26 @@
"mailname",
"mailname2"
],
- "services.test.files.mailname.name": [
+ "services.test_service.files.mailname.name": [
"/etc/mailname",
"/etc/mailname2"
],
- "services.test.files.mailname.variable": [
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.variable": [
"mailname",
"mailname2"
],
- "services.test.files.mailname.activate": true,
- "services.test.files.mailname2.name": [
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.files.mailname2.name": [
"/etc/mailname3",
"/etc/mailname4"
],
- "services.test.files.mailname2.variable": [
+ "services.test_service.files.mailname2.source": "mailname2",
+ "services.test_service.files.mailname2.variable": [
"mailname",
"mailname2"
],
- "services.test.files.mailname2.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.mailname2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70container_files_symlink_multi_variable/makedict/before.json b/tests/dictionaries_old/70container_files_symlink_multi_variable/makedict/before.json
index 85f109144..8cc22a152 100644
--- a/tests/dictionaries_old/70container_files_symlink_multi_variable/makedict/before.json
+++ b/tests/dictionaries_old/70container_files_symlink_multi_variable/makedict/before.json
@@ -20,47 +20,55 @@
"mailname2"
]
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": [
"/etc/mailname",
"/etc/mailname2"
]
},
- "services.test.files.mailname.variable": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.variable": {
"owner": "default",
"value": [
"mailname",
"mailname2"
]
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.files.mailname2.name": {
+ "services.test_service.files.mailname2.name": {
"owner": "default",
"value": [
"/etc/mailname3",
"/etc/mailname4"
]
},
- "services.test.files.mailname2.variable": {
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.variable": {
"owner": "default",
"value": [
"mailname",
"mailname2"
]
},
- "services.test.files.mailname2.activate": {
+ "services.test_service.files.mailname2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_files_symlink_multi_variable/result/etc/mailname b/tests/dictionaries_old/70container_files_symlink_multi_variable/result/etc/mailname
deleted file mode 100644
index 0288f489b..000000000
--- a/tests/dictionaries_old/70container_files_symlink_multi_variable/result/etc/mailname
+++ /dev/null
@@ -1 +0,0 @@
-mailname
diff --git a/tests/dictionaries_old/70container_files_symlink_multi_variable/result/etc/mailname2 b/tests/dictionaries_old/70container_files_symlink_multi_variable/result/etc/mailname2
deleted file mode 100644
index 80d43ca54..000000000
--- a/tests/dictionaries_old/70container_files_symlink_multi_variable/result/etc/mailname2
+++ /dev/null
@@ -1 +0,0 @@
-mailname2
diff --git a/tests/dictionaries_old/70container_files_symlink_multi_variable/result/etc/mailname3 b/tests/dictionaries_old/70container_files_symlink_multi_variable/result/etc/mailname3
deleted file mode 100644
index 0288f489b..000000000
--- a/tests/dictionaries_old/70container_files_symlink_multi_variable/result/etc/mailname3
+++ /dev/null
@@ -1 +0,0 @@
-mailname
diff --git a/tests/dictionaries_old/70container_files_symlink_multi_variable/result/etc/mailname4 b/tests/dictionaries_old/70container_files_symlink_multi_variable/result/etc/mailname4
deleted file mode 100644
index 80d43ca54..000000000
--- a/tests/dictionaries_old/70container_files_symlink_multi_variable/result/etc/mailname4
+++ /dev/null
@@ -1 +0,0 @@
-mailname2
diff --git a/tests/dictionaries_old/70container_files_symlink_multi_variable/result/rougail/00-base.yml b/tests/dictionaries_old/70container_files_symlink_multi_variable/result/rougail/00-base.yml
new file mode 100644
index 000000000..aa8529a0f
--- /dev/null
+++ b/tests/dictionaries_old/70container_files_symlink_multi_variable/result/rougail/00-base.yml
@@ -0,0 +1,19 @@
+file_name:
+ type: filename
+ multi: true
+ default:
+ - /etc/mailname
+ - /etc/mailname2
+file_name2:
+ type: filename
+ multi: true
+ default:
+ - /etc/mailname3
+ - /etc/mailname4
+var:
+ type: string
+ multi: true
+ default:
+ - mailname
+ - mailname2
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_files_symlink_multi_variable/result/services/00-base.yml b/tests/dictionaries_old/70container_files_symlink_multi_variable/result/services/00-base.yml
new file mode 100644
index 000000000..0e03e2738
--- /dev/null
+++ b/tests/dictionaries_old/70container_files_symlink_multi_variable/result/services/00-base.yml
@@ -0,0 +1,12 @@
+test.service:
+ files:
+ rougail.file_name:
+ source: mailname
+ variable: rougail.var
+ type: variable
+ rougail.file_name2:
+ source: mailname2
+ variable: rougail.var
+ engine: jinja
+ type: variable
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_files_symlink_multi_variable/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70container_files_symlink_multi_variable/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 95445abe3..000000000
--- a/tests/dictionaries_old/70container_files_symlink_multi_variable/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
-z /etc/mailname - - - - -
-C /etc/mailname2 0644 root root - /usr/local/lib/etc/mailname2
-z /etc/mailname2 - - - - -
-C /etc/mailname3 0644 root root - /usr/local/lib/etc/mailname3
-z /etc/mailname3 - - - - -
-C /etc/mailname4 0644 root root - /usr/local/lib/etc/mailname4
-z /etc/mailname4 - - - - -
diff --git a/tests/dictionaries_old/70container_files_symlink_multi_variable/tiramisu/base.py b/tests/dictionaries_old/70container_files_symlink_multi_variable/tiramisu/base.py
index c5f881be1..21c3b1d40 100644
--- a/tests/dictionaries_old/70container_files_symlink_multi_variable/tiramisu/base.py
+++ b/tests/dictionaries_old/70container_files_symlink_multi_variable/tiramisu/base.py
@@ -1,34 +1,45 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = FilenameOption(name="file_name", doc="file_name", multi=True, default=['/etc/mailname', '/etc/mailname2'], default_multi="/etc/mailname", properties=frozenset({"mandatory", "normal"}))
option_3 = FilenameOption(name="file_name2", doc="file_name2", multi=True, default=['/etc/mailname3', '/etc/mailname4'], default_multi="/etc/mailname3", properties=frozenset({"mandatory", "normal"}))
option_4 = StrOption(name="var", doc="var", multi=True, default=['mailname', 'mailname2'], default_multi="mailname", properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4])
-option_9 = SymLinkOption(name="name", opt=option_2)
-option_10 = SymLinkOption(name="variable", opt=option_4)
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4], properties=frozenset({"normal"}))
+option_9 = FilenameOption(name="name", doc="name", default="rougail.file_name")
+option_10 = FilenameOption(name="source", doc="source", default="rougail.file_name")
option_11 = BoolOption(name="activate", doc="activate", default=True)
-option_8 = OptionDescription(name="mailname", doc="mailname", children=[option_9, option_10, option_11])
-option_8.impl_set_information('source', "mailname")
-option_13 = SymLinkOption(name="name", opt=option_3)
-option_14 = SymLinkOption(name="variable", opt=option_4)
+optiondescription_8 = OptionDescription(name="mailname", doc="mailname", children=[option_9, option_10, option_11])
+option_13 = FilenameOption(name="name", doc="name", default="rougail.file_name2")
+option_14 = FilenameOption(name="source", doc="source", default="rougail.file_name2")
option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_12 = OptionDescription(name="mailname2", doc="mailname2", children=[option_13, option_14, option_15])
-option_12.impl_set_information('engine', "jinja")
-option_12.impl_set_information('source', "mailname2")
-option_7 = OptionDescription(name="files", doc="files", children=[option_8, option_12])
+optiondescription_12 = OptionDescription(name="mailname2", doc="mailname2", children=[option_13, option_14, option_15])
+optiondescription_12.impl_set_information('engine', "jinja")
+optiondescription_7 = OptionDescription(name="files", doc="files", children=[optiondescription_8, optiondescription_12])
option_16 = BoolOption(name="activate", doc="activate", default=True)
option_17 = BoolOption(name="manage", doc="manage", default=True)
-option_6 = OptionDescription(name="test", doc="test", children=[option_7, option_16, option_17])
-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])
+optiondescription_6 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_7, option_16, option_17])
+optiondescription_6.impl_set_information('type', "service")
+optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/tiramisu/multi.py b/tests/dictionaries_old/70container_files_symlink_multi_variable/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70container_files_symlink_multi_variable/tiramisu/multi.py
rename to tests/dictionaries_old/70container_files_symlink_multi_variable/tiramisu/multi.py
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/xml/00-base.xml b/tests/dictionaries_old/70container_files_symlink_multi_variable/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70container_files_symlink_multi_variable/xml/00-base.xml
rename to tests/dictionaries_old/70container_files_symlink_multi_variable/xml/00-base.xml
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/yml/00-base.yml b/tests/dictionaries_old/70container_files_symlink_multi_variable/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70container_files_symlink_multi_variable/yml/00-base.yml
rename to tests/dictionaries_old/70container_files_symlink_multi_variable/yml/00-base.yml
diff --git a/tests/dictionaries_old/70container_files_symlink_variable/00-base.xml b/tests/dictionaries_old/70container_files_symlink_variable/00-base.xml
deleted file mode 100644
index 19f77a673..000000000
--- a/tests/dictionaries_old/70container_files_symlink_variable/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- file_name
-
-
-
-
- /etc/mailname
-
-
- mailname
-
-
-
diff --git a/tests/dictionaries_old/70container_files_symlink_variable/makedict/after.json b/tests/dictionaries_old/70container_files_symlink_variable/makedict/after.json
index 06490541c..b747831d7 100644
--- a/tests/dictionaries_old/70container_files_symlink_variable/makedict/after.json
+++ b/tests/dictionaries_old/70container_files_symlink_variable/makedict/after.json
@@ -7,23 +7,27 @@
"owner": "default",
"value": "mailname"
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.variable": {
+ "services.test_service.files.mailname.source": {
"owner": "default",
"value": "mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.variable": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_files_symlink_variable/makedict/base.json b/tests/dictionaries_old/70container_files_symlink_variable/makedict/base.json
index 6f9a4fd00..0a2aa4556 100644
--- a/tests/dictionaries_old/70container_files_symlink_variable/makedict/base.json
+++ b/tests/dictionaries_old/70container_files_symlink_variable/makedict/base.json
@@ -1,9 +1,10 @@
{
"rougail.file_name": "/etc/mailname",
"rougail.var": "mailname",
- "services.test.files.mailname.name": "/etc/mailname",
- "services.test.files.mailname.variable": "mailname",
- "services.test.files.mailname.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.mailname.name": "/etc/mailname",
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.variable": "mailname",
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70container_files_symlink_variable/makedict/before.json b/tests/dictionaries_old/70container_files_symlink_variable/makedict/before.json
index 06490541c..b747831d7 100644
--- a/tests/dictionaries_old/70container_files_symlink_variable/makedict/before.json
+++ b/tests/dictionaries_old/70container_files_symlink_variable/makedict/before.json
@@ -7,23 +7,27 @@
"owner": "default",
"value": "mailname"
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.variable": {
+ "services.test_service.files.mailname.source": {
"owner": "default",
"value": "mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.variable": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_files_symlink_variable/result/etc/mailname b/tests/dictionaries_old/70container_files_symlink_variable/result/etc/mailname
deleted file mode 100644
index 0288f489b..000000000
--- a/tests/dictionaries_old/70container_files_symlink_variable/result/etc/mailname
+++ /dev/null
@@ -1 +0,0 @@
-mailname
diff --git a/tests/dictionaries_old/70container_files_symlink_variable/result/rougail/00-base.yml b/tests/dictionaries_old/70container_files_symlink_variable/result/rougail/00-base.yml
new file mode 100644
index 000000000..4713f9927
--- /dev/null
+++ b/tests/dictionaries_old/70container_files_symlink_variable/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+file_name:
+ type: filename
+ default: /etc/mailname
+var:
+ type: string
+ default: mailname
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_files_symlink_variable/result/services/00-base.yml b/tests/dictionaries_old/70container_files_symlink_variable/result/services/00-base.yml
new file mode 100644
index 000000000..e45aadb6a
--- /dev/null
+++ b/tests/dictionaries_old/70container_files_symlink_variable/result/services/00-base.yml
@@ -0,0 +1,7 @@
+test.service:
+ files:
+ rougail.file_name:
+ source: mailname
+ variable: rougail.var
+ type: variable
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_files_symlink_variable/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70container_files_symlink_variable/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index 46697e03a..000000000
--- a/tests/dictionaries_old/70container_files_symlink_variable/result/tmpfiles.d/rougail.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
-z /etc/mailname - - - - -
diff --git a/tests/dictionaries_old/70container_files_symlink_variable/tiramisu/base.py b/tests/dictionaries_old/70container_files_symlink_variable/tiramisu/base.py
index f93c3f356..4684a174b 100644
--- a/tests/dictionaries_old/70container_files_symlink_variable/tiramisu/base.py
+++ b/tests/dictionaries_old/70container_files_symlink_variable/tiramisu/base.py
@@ -1,27 +1,39 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = FilenameOption(name="file_name", doc="file_name", default="/etc/mailname", properties=frozenset({"mandatory", "normal"}))
option_3 = StrOption(name="var", doc="var", default="mailname", properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_8 = SymLinkOption(name="name", opt=option_2)
-option_9 = SymLinkOption(name="variable", opt=option_3)
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
+option_8 = FilenameOption(name="name", doc="name", default="rougail.file_name")
+option_9 = FilenameOption(name="source", doc="source", default="rougail.file_name")
option_10 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10])
-option_7.impl_set_information('source', "mailname")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7])
+optiondescription_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10])
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
option_11 = BoolOption(name="activate", doc="activate", default=True)
option_12 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_11, option_12])
-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])
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_11, option_12])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70container_files_symlink_variable/tiramisu/multi.py b/tests/dictionaries_old/70container_files_symlink_variable/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70container_files_symlink_variable/tiramisu/multi.py
rename to tests/dictionaries_old/70container_files_symlink_variable/tiramisu/multi.py
diff --git a/tests/dictionaries/70container_files_symlink_variable/xml/00-base.xml b/tests/dictionaries_old/70container_files_symlink_variable/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70container_files_symlink_variable/xml/00-base.xml
rename to tests/dictionaries_old/70container_files_symlink_variable/xml/00-base.xml
diff --git a/tests/dictionaries/70container_files_symlink_variable/yml/00-base.yml b/tests/dictionaries_old/70container_files_symlink_variable/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70container_files_symlink_variable/yml/00-base.yml
rename to tests/dictionaries_old/70container_files_symlink_variable/yml/00-base.yml
diff --git a/tests/dictionaries_old/70container_files_twice/00-base.xml b/tests/dictionaries_old/70container_files_twice/00-base.xml
deleted file mode 100644
index b817d912c..000000000
--- a/tests/dictionaries_old/70container_files_twice/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- /etc/mailname
- /etc/eole/mailname
- /rougail.conf
-
-
-
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/70container_files_twice/makedict/after.json b/tests/dictionaries_old/70container_files_twice/makedict/after.json
index 784f895bf..70edb7ece 100644
--- a/tests/dictionaries_old/70container_files_twice/makedict/after.json
+++ b/tests/dictionaries_old/70container_files_twice/makedict/after.json
@@ -3,35 +3,47 @@
"owner": "default",
"value": "oui"
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.files.mailname_1.name": {
+ "services.test_service.files.mailname_1.name": {
"owner": "default",
"value": "/etc/eole/mailname"
},
- "services.test.files.mailname_1.activate": {
+ "services.test_service.files.mailname_1.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname_1.activate": {
"owner": "default",
"value": true
},
- "services.test.files.rougail_conf.name": {
+ "services.test_service.files.rougail_conf.name": {
"owner": "default",
"value": "/rougail.conf"
},
- "services.test.files.rougail_conf.activate": {
+ "services.test_service.files.rougail_conf.source": {
+ "owner": "default",
+ "value": "rougail.conf"
+ },
+ "services.test_service.files.rougail_conf.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_files_twice/makedict/base.json b/tests/dictionaries_old/70container_files_twice/makedict/base.json
index 0022daabd..b73e7c5d2 100644
--- a/tests/dictionaries_old/70container_files_twice/makedict/base.json
+++ b/tests/dictionaries_old/70container_files_twice/makedict/base.json
@@ -1,11 +1,14 @@
{
"rougail.general.mode_conteneur_actif": "oui",
- "services.test.files.mailname.name": "/etc/mailname",
- "services.test.files.mailname.activate": true,
- "services.test.files.mailname_1.name": "/etc/eole/mailname",
- "services.test.files.mailname_1.activate": true,
- "services.test.files.rougail_conf.name": "/rougail.conf",
- "services.test.files.rougail_conf.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.mailname.name": "/etc/mailname",
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.files.mailname_1.name": "/etc/eole/mailname",
+ "services.test_service.files.mailname_1.source": "mailname",
+ "services.test_service.files.mailname_1.activate": true,
+ "services.test_service.files.rougail_conf.name": "/rougail.conf",
+ "services.test_service.files.rougail_conf.source": "rougail.conf",
+ "services.test_service.files.rougail_conf.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70container_files_twice/makedict/before.json b/tests/dictionaries_old/70container_files_twice/makedict/before.json
index 784f895bf..70edb7ece 100644
--- a/tests/dictionaries_old/70container_files_twice/makedict/before.json
+++ b/tests/dictionaries_old/70container_files_twice/makedict/before.json
@@ -3,35 +3,47 @@
"owner": "default",
"value": "oui"
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.files.mailname_1.name": {
+ "services.test_service.files.mailname_1.name": {
"owner": "default",
"value": "/etc/eole/mailname"
},
- "services.test.files.mailname_1.activate": {
+ "services.test_service.files.mailname_1.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname_1.activate": {
"owner": "default",
"value": true
},
- "services.test.files.rougail_conf.name": {
+ "services.test_service.files.rougail_conf.name": {
"owner": "default",
"value": "/rougail.conf"
},
- "services.test.files.rougail_conf.activate": {
+ "services.test_service.files.rougail_conf.source": {
+ "owner": "default",
+ "value": "rougail.conf"
+ },
+ "services.test_service.files.rougail_conf.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_files_twice/result/rougail/00-base.yml b/tests/dictionaries_old/70container_files_twice/result/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries_old/70container_files_twice/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_files_twice/result/services/00-base.yml b/tests/dictionaries_old/70container_files_twice/result/services/00-base.yml
new file mode 100644
index 000000000..d92ae559b
--- /dev/null
+++ b/tests/dictionaries_old/70container_files_twice/result/services/00-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/mailname: {}
+ /etc/eole/mailname: {}
+ /rougail.conf: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_files_twice/tiramisu/base.py b/tests/dictionaries_old/70container_files_twice/tiramisu/base.py
index 04f006a70..8073b396c 100644
--- a/tests/dictionaries_old/70container_files_twice/tiramisu/base.py
+++ b/tests/dictionaries_old/70container_files_twice/tiramisu/base.py
@@ -1,34 +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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9])
-option_7.impl_set_information('source', "mailname")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/eole/mailname")
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = OptionDescription(name="mailname_1", doc="mailname_1", children=[option_11, option_12])
-option_10.impl_set_information('source', "mailname")
-option_14 = FilenameOption(name="name", doc="name", default="/rougail.conf")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = OptionDescription(name="rougail_conf", doc="rougail.conf", children=[option_14, option_15])
-option_13.impl_set_information('source', "rougail.conf")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_10, option_13])
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_17 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_16, option_17])
-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])
+option_9 = FilenameOption(name="source", doc="source", default="/etc/mailname")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/etc/eole/mailname")
+option_13 = FilenameOption(name="source", doc="source", default="/etc/eole/mailname")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="mailname_1", doc="mailname_1", children=[option_12, option_13, option_14])
+option_16 = FilenameOption(name="name", doc="name", default="/rougail.conf")
+option_17 = FilenameOption(name="source", doc="source", default="/rougail.conf")
+option_18 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_15 = OptionDescription(name="rougail_conf", doc="rougail_conf", children=[option_16, option_17, option_18])
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11, optiondescription_15])
+option_19 = BoolOption(name="activate", doc="activate", default=True)
+option_20 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_19, option_20])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70container_files_twice/tiramisu/multi.py b/tests/dictionaries_old/70container_files_twice/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70container_files_twice/tiramisu/multi.py
rename to tests/dictionaries_old/70container_files_twice/tiramisu/multi.py
diff --git a/tests/dictionaries/70container_files_twice/xml/00-base.xml b/tests/dictionaries_old/70container_files_twice/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70container_files_twice/xml/00-base.xml
rename to tests/dictionaries_old/70container_files_twice/xml/00-base.xml
diff --git a/tests/dictionaries/70container_files_twice/yml/00-base.yml b/tests/dictionaries_old/70container_files_twice/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70container_files_twice/yml/00-base.yml
rename to tests/dictionaries_old/70container_files_twice/yml/00-base.yml
diff --git a/tests/dictionaries_old/70container_filesmulti/00-base.xml b/tests/dictionaries_old/70container_filesmulti/00-base.xml
deleted file mode 100644
index 517f4d9d8..000000000
--- a/tests/dictionaries_old/70container_filesmulti/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- /etc/mailname
- /etc/mailname2
-
-
-
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/70container_filesmulti/makedict/after.json b/tests/dictionaries_old/70container_filesmulti/makedict/after.json
index 24097e2e1..9dcd12d2d 100644
--- a/tests/dictionaries_old/70container_filesmulti/makedict/after.json
+++ b/tests/dictionaries_old/70container_filesmulti/makedict/after.json
@@ -3,27 +3,35 @@
"owner": "default",
"value": "oui"
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.files.mailname2.name": {
+ "services.test_service.files.mailname2.name": {
"owner": "default",
"value": "/etc/mailname2"
},
- "services.test.files.mailname2.activate": {
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_filesmulti/makedict/base.json b/tests/dictionaries_old/70container_filesmulti/makedict/base.json
index deaab82d9..a65849733 100644
--- a/tests/dictionaries_old/70container_filesmulti/makedict/base.json
+++ b/tests/dictionaries_old/70container_filesmulti/makedict/base.json
@@ -1,9 +1,11 @@
{
"rougail.general.mode_conteneur_actif": "oui",
- "services.test.files.mailname.name": "/etc/mailname",
- "services.test.files.mailname.activate": true,
- "services.test.files.mailname2.name": "/etc/mailname2",
- "services.test.files.mailname2.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.mailname.name": "/etc/mailname",
+ "services.test_service.files.mailname.source": "mailname",
+ "services.test_service.files.mailname.activate": true,
+ "services.test_service.files.mailname2.name": "/etc/mailname2",
+ "services.test_service.files.mailname2.source": "mailname2",
+ "services.test_service.files.mailname2.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70container_filesmulti/makedict/before.json b/tests/dictionaries_old/70container_filesmulti/makedict/before.json
index 24097e2e1..9dcd12d2d 100644
--- a/tests/dictionaries_old/70container_filesmulti/makedict/before.json
+++ b/tests/dictionaries_old/70container_filesmulti/makedict/before.json
@@ -3,27 +3,35 @@
"owner": "default",
"value": "oui"
},
- "services.test.files.mailname.name": {
+ "services.test_service.files.mailname.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname.activate": {
+ "services.test_service.files.mailname.source": {
+ "owner": "default",
+ "value": "mailname"
+ },
+ "services.test_service.files.mailname.activate": {
"owner": "default",
"value": true
},
- "services.test.files.mailname2.name": {
+ "services.test_service.files.mailname2.name": {
"owner": "default",
"value": "/etc/mailname2"
},
- "services.test.files.mailname2.activate": {
+ "services.test_service.files.mailname2.source": {
+ "owner": "default",
+ "value": "mailname2"
+ },
+ "services.test_service.files.mailname2.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_filesmulti/result/rougail/00-base.yml b/tests/dictionaries_old/70container_filesmulti/result/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries_old/70container_filesmulti/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_filesmulti/result/services/00-base.yml b/tests/dictionaries_old/70container_filesmulti/result/services/00-base.yml
new file mode 100644
index 000000000..b07c25679
--- /dev/null
+++ b/tests/dictionaries_old/70container_filesmulti/result/services/00-base.yml
@@ -0,0 +1,5 @@
+test.service:
+ files:
+ /etc/mailname: {}
+ /etc/mailname2: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_filesmulti/tiramisu/base.py b/tests/dictionaries_old/70container_filesmulti/tiramisu/base.py
index f92bb0408..2000e2c30 100644
--- a/tests/dictionaries_old/70container_filesmulti/tiramisu/base.py
+++ b/tests/dictionaries_old/70container_filesmulti/tiramisu/base.py
@@ -1,30 +1,43 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9])
-option_7.impl_set_information('source', "mailname")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = OptionDescription(name="mailname2", doc="mailname2", children=[option_11, option_12])
-option_10.impl_set_information('source', "mailname2")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_10])
-option_13 = BoolOption(name="activate", doc="activate", default=True)
-option_14 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_13, option_14])
-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])
+option_9 = FilenameOption(name="source", doc="source", default="/etc/mailname")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_13 = FilenameOption(name="source", doc="source", default="/etc/mailname2")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="mailname2", doc="mailname2", children=[option_12, option_13, option_14])
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_15, option_16])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70container_filesmulti/tiramisu/multi.py b/tests/dictionaries_old/70container_filesmulti/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70container_filesmulti/tiramisu/multi.py
rename to tests/dictionaries_old/70container_filesmulti/tiramisu/multi.py
diff --git a/tests/dictionaries/70container_filesmulti/xml/00-base.xml b/tests/dictionaries_old/70container_filesmulti/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70container_filesmulti/xml/00-base.xml
rename to tests/dictionaries_old/70container_filesmulti/xml/00-base.xml
diff --git a/tests/dictionaries/70container_filesmulti/yml/00-base.yml b/tests/dictionaries_old/70container_filesmulti/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70container_filesmulti/yml/00-base.yml
rename to tests/dictionaries_old/70container_filesmulti/yml/00-base.yml
diff --git a/tests/dictionaries_old/70container_filesredefine/00-base.xml b/tests/dictionaries_old/70container_filesredefine/00-base.xml
deleted file mode 100644
index 7a9c4c735..000000000
--- a/tests/dictionaries_old/70container_filesredefine/00-base.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- /etc/mailname
-
-
-
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/70container_filesredefine/01-base.xml b/tests/dictionaries_old/70container_filesredefine/01-base.xml
deleted file mode 100644
index 185b44d07..000000000
--- a/tests/dictionaries_old/70container_filesredefine/01-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- /etc/mailname
-
-
-
diff --git a/tests/dictionaries_old/70container_filesredefine/makedict/after.json b/tests/dictionaries_old/70container_filesredefine/makedict/after.json
index 4c4c7f957..bf5c7668d 100644
--- a/tests/dictionaries_old/70container_filesredefine/makedict/after.json
+++ b/tests/dictionaries_old/70container_filesredefine/makedict/after.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": "oui"
},
- "services.test.files.mailname_new.name": {
+ "services.test_service.files.mailname_new.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname_new.activate": {
+ "services.test_service.files.mailname_new.source": {
+ "owner": "default",
+ "value": "mailname.new"
+ },
+ "services.test_service.files.mailname_new.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_filesredefine/makedict/base.json b/tests/dictionaries_old/70container_filesredefine/makedict/base.json
index c74518410..94d93f3ff 100644
--- a/tests/dictionaries_old/70container_filesredefine/makedict/base.json
+++ b/tests/dictionaries_old/70container_filesredefine/makedict/base.json
@@ -1,7 +1,8 @@
{
"rougail.general.mode_conteneur_actif": "oui",
- "services.test.files.mailname_new.name": "/etc/mailname",
- "services.test.files.mailname_new.activate": true,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.files.mailname_new.name": "/etc/mailname",
+ "services.test_service.files.mailname_new.source": "mailname.new",
+ "services.test_service.files.mailname_new.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70container_filesredefine/makedict/before.json b/tests/dictionaries_old/70container_filesredefine/makedict/before.json
index 4c4c7f957..bf5c7668d 100644
--- a/tests/dictionaries_old/70container_filesredefine/makedict/before.json
+++ b/tests/dictionaries_old/70container_filesredefine/makedict/before.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": "oui"
},
- "services.test.files.mailname_new.name": {
+ "services.test_service.files.mailname_new.name": {
"owner": "default",
"value": "/etc/mailname"
},
- "services.test.files.mailname_new.activate": {
+ "services.test_service.files.mailname_new.source": {
+ "owner": "default",
+ "value": "mailname.new"
+ },
+ "services.test_service.files.mailname_new.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_filesredefine/result/rougail/00-base.yml b/tests/dictionaries_old/70container_filesredefine/result/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries_old/70container_filesredefine/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_filesredefine/result/services/00-base.yml b/tests/dictionaries_old/70container_filesredefine/result/services/00-base.yml
new file mode 100644
index 000000000..e25233253
--- /dev/null
+++ b/tests/dictionaries_old/70container_filesredefine/result/services/00-base.yml
@@ -0,0 +1,4 @@
+test.service:
+ files:
+ /etc/mailname: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_filesredefine/result/services/01-base.yml b/tests/dictionaries_old/70container_filesredefine/result/services/01-base.yml
new file mode 100644
index 000000000..db85e7926
--- /dev/null
+++ b/tests/dictionaries_old/70container_filesredefine/result/services/01-base.yml
@@ -0,0 +1,6 @@
+test.service:
+ files:
+ /etc/mailname:
+ source: mailname.new
+ redefine: true
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_filesredefine/tiramisu/base.py b/tests/dictionaries_old/70container_filesredefine/tiramisu/base.py
index 60b5500a8..064fa0891 100644
--- a/tests/dictionaries_old/70container_filesredefine/tiramisu/base.py
+++ b/tests/dictionaries_old/70container_filesredefine/tiramisu/base.py
@@ -1,26 +1,43 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="mailname_new", doc="mailname.new", children=[option_8, option_9])
-option_7.impl_set_information('source', "mailname.new")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7])
+option_9 = FilenameOption(name="source", doc="source", default="/etc/mailname")
option_10 = BoolOption(name="activate", doc="activate", default=True)
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_10, option_11])
-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])
+optiondescription_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10])
+option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_13 = FilenameOption(name="source", doc="source", default="/etc/mailname")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_11 = OptionDescription(name="mailname_new", doc="mailname_new", children=[option_12, option_13, option_14])
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7, optiondescription_11])
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_15, option_16])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70container_filesredefine/tiramisu/multi.py b/tests/dictionaries_old/70container_filesredefine/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70container_filesredefine/tiramisu/multi.py
rename to tests/dictionaries_old/70container_filesredefine/tiramisu/multi.py
diff --git a/tests/dictionaries/70container_filesredefine/xml/00-base.xml b/tests/dictionaries_old/70container_filesredefine/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70container_filesredefine/xml/00-base.xml
rename to tests/dictionaries_old/70container_filesredefine/xml/00-base.xml
diff --git a/tests/dictionaries/70container_filesredefine/xml/01-base.xml b/tests/dictionaries_old/70container_filesredefine/xml/01-base.xml
similarity index 100%
rename from tests/dictionaries/70container_filesredefine/xml/01-base.xml
rename to tests/dictionaries_old/70container_filesredefine/xml/01-base.xml
diff --git a/tests/dictionaries/70container_filesredefine/yml/00-base.yml b/tests/dictionaries_old/70container_filesredefine/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70container_filesredefine/yml/00-base.yml
rename to tests/dictionaries_old/70container_filesredefine/yml/00-base.yml
diff --git a/tests/dictionaries/70container_filesredefine/yml/01-base.yml b/tests/dictionaries_old/70container_filesredefine/yml/01-base.yml
similarity index 100%
rename from tests/dictionaries/70container_filesredefine/yml/01-base.yml
rename to tests/dictionaries_old/70container_filesredefine/yml/01-base.yml
diff --git a/tests/dictionaries_old/70container_new/00-base.xml b/tests/dictionaries_old/70container_new/00-base.xml
deleted file mode 100644
index 8e6a7e366..000000000
--- a/tests/dictionaries_old/70container_new/00-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/70container_new/makedict/after.json b/tests/dictionaries_old/70container_new/makedict/after.json
index 07fda6ef8..9563ea8fd 100644
--- a/tests/dictionaries_old/70container_new/makedict/after.json
+++ b/tests/dictionaries_old/70container_new/makedict/after.json
@@ -3,11 +3,11 @@
"owner": "default",
"value": "oui"
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_new/makedict/base.json b/tests/dictionaries_old/70container_new/makedict/base.json
index a9753778a..18151a282 100644
--- a/tests/dictionaries_old/70container_new/makedict/base.json
+++ b/tests/dictionaries_old/70container_new/makedict/base.json
@@ -1,5 +1,5 @@
{
"rougail.general.mode_conteneur_actif": "oui",
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70container_new/makedict/before.json b/tests/dictionaries_old/70container_new/makedict/before.json
index 07fda6ef8..9563ea8fd 100644
--- a/tests/dictionaries_old/70container_new/makedict/before.json
+++ b/tests/dictionaries_old/70container_new/makedict/before.json
@@ -3,11 +3,11 @@
"owner": "default",
"value": "oui"
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_new/result/rougail/00-base.yml b/tests/dictionaries_old/70container_new/result/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries_old/70container_new/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_new/result/services/00-base.yml b/tests/dictionaries_old/70container_new/result/services/00-base.yml
new file mode 100644
index 000000000..6475a5cf5
--- /dev/null
+++ b/tests/dictionaries_old/70container_new/result/services/00-base.yml
@@ -0,0 +1,2 @@
+test.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_new/tiramisu/base.py b/tests/dictionaries_old/70container_new/tiramisu/base.py
index 6238450ba..de697756b 100644
--- a/tests/dictionaries_old/70container_new/tiramisu/base.py
+++ b/tests/dictionaries_old/70container_new/tiramisu/base.py
@@ -1,21 +1,34 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_6 = BoolOption(name="activate", doc="activate", default=True)
option_7 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_7])
-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])
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70container_new/tiramisu/multi.py b/tests/dictionaries_old/70container_new/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70container_new/tiramisu/multi.py
rename to tests/dictionaries_old/70container_new/tiramisu/multi.py
diff --git a/tests/dictionaries/70container_new/xml/00-base.xml b/tests/dictionaries_old/70container_new/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70container_new/xml/00-base.xml
rename to tests/dictionaries_old/70container_new/xml/00-base.xml
diff --git a/tests/dictionaries/70container_new/yml/00-base.yml b/tests/dictionaries_old/70container_new/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70container_new/yml/00-base.yml
rename to tests/dictionaries_old/70container_new/yml/00-base.yml
diff --git a/tests/dictionaries_old/70container_newnocont/00-base.xml b/tests/dictionaries_old/70container_newnocont/00-base.xml
deleted file mode 100644
index 3cd49c193..000000000
--- a/tests/dictionaries_old/70container_newnocont/00-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/70container_newnocont/makedict/after.json b/tests/dictionaries_old/70container_newnocont/makedict/after.json
index b7f1fd9e2..6252cc155 100644
--- a/tests/dictionaries_old/70container_newnocont/makedict/after.json
+++ b/tests/dictionaries_old/70container_newnocont/makedict/after.json
@@ -3,11 +3,11 @@
"owner": "default",
"value": "non"
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_newnocont/makedict/base.json b/tests/dictionaries_old/70container_newnocont/makedict/base.json
index e38686ea4..69cfb362c 100644
--- a/tests/dictionaries_old/70container_newnocont/makedict/base.json
+++ b/tests/dictionaries_old/70container_newnocont/makedict/base.json
@@ -1,5 +1,5 @@
{
"rougail.general.mode_conteneur_actif": "non",
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70container_newnocont/makedict/before.json b/tests/dictionaries_old/70container_newnocont/makedict/before.json
index b7f1fd9e2..6252cc155 100644
--- a/tests/dictionaries_old/70container_newnocont/makedict/before.json
+++ b/tests/dictionaries_old/70container_newnocont/makedict/before.json
@@ -3,11 +3,11 @@
"owner": "default",
"value": "non"
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_newnocont/result/rougail/00-base.yml b/tests/dictionaries_old/70container_newnocont/result/rougail/00-base.yml
new file mode 100644
index 000000000..1085cc1cc
--- /dev/null
+++ b/tests/dictionaries_old/70container_newnocont/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: non
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_newnocont/result/services/00-base.yml b/tests/dictionaries_old/70container_newnocont/result/services/00-base.yml
new file mode 100644
index 000000000..6475a5cf5
--- /dev/null
+++ b/tests/dictionaries_old/70container_newnocont/result/services/00-base.yml
@@ -0,0 +1,2 @@
+test.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_newnocont/tiramisu/base.py b/tests/dictionaries_old/70container_newnocont/tiramisu/base.py
index ba4dfacf2..a9a0d147a 100644
--- a/tests/dictionaries_old/70container_newnocont/tiramisu/base.py
+++ b/tests/dictionaries_old/70container_newnocont/tiramisu/base.py
@@ -1,21 +1,34 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_6 = BoolOption(name="activate", doc="activate", default=True)
option_7 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_7])
-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])
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70container_newnocont/tiramisu/multi.py b/tests/dictionaries_old/70container_newnocont/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70container_newnocont/tiramisu/multi.py
rename to tests/dictionaries_old/70container_newnocont/tiramisu/multi.py
diff --git a/tests/dictionaries/70container_newnocont/xml/00-base.xml b/tests/dictionaries_old/70container_newnocont/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70container_newnocont/xml/00-base.xml
rename to tests/dictionaries_old/70container_newnocont/xml/00-base.xml
diff --git a/tests/dictionaries/70container_newnocont/yml/00-base.yml b/tests/dictionaries_old/70container_newnocont/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70container_newnocont/yml/00-base.yml
rename to tests/dictionaries_old/70container_newnocont/yml/00-base.yml
diff --git a/tests/dictionaries_old/70container_newwithip/00-base.xml b/tests/dictionaries_old/70container_newwithip/00-base.xml
deleted file mode 100644
index 20d12315a..000000000
--- a/tests/dictionaries_old/70container_newwithip/00-base.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
- oui
-
-
-
-
-
diff --git a/tests/dictionaries_old/70container_newwithip/makedict/after.json b/tests/dictionaries_old/70container_newwithip/makedict/after.json
index cfa1cc504..fc73e6e57 100644
--- a/tests/dictionaries_old/70container_newwithip/makedict/after.json
+++ b/tests/dictionaries_old/70container_newwithip/makedict/after.json
@@ -7,11 +7,11 @@
"owner": "default",
"value": null
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_newwithip/makedict/base.json b/tests/dictionaries_old/70container_newwithip/makedict/base.json
index b87401139..fe91c390c 100644
--- a/tests/dictionaries_old/70container_newwithip/makedict/base.json
+++ b/tests/dictionaries_old/70container_newwithip/makedict/base.json
@@ -1,6 +1,6 @@
{
"rougail.general.mode_conteneur_actif": "oui",
"rougail.general.adresse_ip_test": null,
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70container_newwithip/makedict/before.json b/tests/dictionaries_old/70container_newwithip/makedict/before.json
index cfa1cc504..fc73e6e57 100644
--- a/tests/dictionaries_old/70container_newwithip/makedict/before.json
+++ b/tests/dictionaries_old/70container_newwithip/makedict/before.json
@@ -7,11 +7,11 @@
"owner": "default",
"value": null
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70container_newwithip/result/rougail/00-base.yml b/tests/dictionaries_old/70container_newwithip/result/rougail/00-base.yml
new file mode 100644
index 000000000..d90be05dc
--- /dev/null
+++ b/tests/dictionaries_old/70container_newwithip/result/rougail/00-base.yml
@@ -0,0 +1,11 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+ adresse_ip_test:
+ type: ip
+ description: No change
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_newwithip/result/services/00-base.yml b/tests/dictionaries_old/70container_newwithip/result/services/00-base.yml
new file mode 100644
index 000000000..6475a5cf5
--- /dev/null
+++ b/tests/dictionaries_old/70container_newwithip/result/services/00-base.yml
@@ -0,0 +1,2 @@
+test.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_newwithip/tiramisu/base.py b/tests/dictionaries_old/70container_newwithip/tiramisu/base.py
index cfbbe2b28..9c0806e06 100644
--- a/tests/dictionaries_old/70container_newwithip/tiramisu/base.py
+++ b/tests/dictionaries_old/70container_newwithip/tiramisu/base.py
@@ -1,22 +1,35 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
option_4 = IPOption(name="adresse_ip_test", doc="No change", allow_reserved=True, properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_7 = BoolOption(name="activate", doc="activate", default=True)
option_8 = BoolOption(name="manage", doc="manage", default=True)
-option_6 = OptionDescription(name="test", doc="test", children=[option_7, option_8])
-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])
+optiondescription_6 = OptionDescription(name="test_service", doc="test_service", children=[option_7, option_8])
+optiondescription_6.impl_set_information('type', "service")
+optiondescription_5 = OptionDescription(name="services", doc="services", children=[optiondescription_6], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5])
diff --git a/tests/dictionaries/70container_newwithip/tiramisu/multi.py b/tests/dictionaries_old/70container_newwithip/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70container_newwithip/tiramisu/multi.py
rename to tests/dictionaries_old/70container_newwithip/tiramisu/multi.py
diff --git a/tests/dictionaries/70container_newwithip/xml/00-base.xml b/tests/dictionaries_old/70container_newwithip/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70container_newwithip/xml/00-base.xml
rename to tests/dictionaries_old/70container_newwithip/xml/00-base.xml
diff --git a/tests/dictionaries/70container_newwithip/yml/00-base.yml b/tests/dictionaries_old/70container_newwithip/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70container_newwithip/yml/00-base.yml
rename to tests/dictionaries_old/70container_newwithip/yml/00-base.yml
diff --git a/tests/dictionaries_old/70container_save/00-base.xml b/tests/dictionaries_old/70container_save/00-base.xml
deleted file mode 100644
index ffcda8839..000000000
--- a/tests/dictionaries_old/70container_save/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/70container_save/result/rougail/00-base.yml b/tests/dictionaries_old/70container_save/result/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries_old/70container_save/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/70container_save/tiramisu/base.py b/tests/dictionaries_old/70container_save/tiramisu/base.py
index 7d31b5d2a..a7dd6ae1d 100644
--- a/tests/dictionaries_old/70container_save/tiramisu/base.py
+++ b/tests/dictionaries_old/70container_save/tiramisu/base.py
@@ -1,17 +1,29 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/70container_save/tiramisu/multi.py b/tests/dictionaries_old/70container_save/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70container_save/tiramisu/multi.py
rename to tests/dictionaries_old/70container_save/tiramisu/multi.py
diff --git a/tests/dictionaries/70container_save/xml/00-base.xml b/tests/dictionaries_old/70container_save/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70container_save/xml/00-base.xml
rename to tests/dictionaries_old/70container_save/xml/00-base.xml
diff --git a/tests/dictionaries/70container_save/yml/00-base.yml b/tests/dictionaries_old/70container_save/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70container_save/yml/00-base.yml
rename to tests/dictionaries_old/70container_save/yml/00-base.yml
diff --git a/tests/dictionaries_old/70service_base/00-base.xml b/tests/dictionaries_old/70service_base/00-base.xml
deleted file mode 100644
index d82671d79..000000000
--- a/tests/dictionaries_old/70service_base/00-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/70service_base/makedict/after.json b/tests/dictionaries_old/70service_base/makedict/after.json
index c8847b435..ef29924ce 100644
--- a/tests/dictionaries_old/70service_base/makedict/after.json
+++ b/tests/dictionaries_old/70service_base/makedict/after.json
@@ -3,11 +3,11 @@
"owner": "default",
"value": "oui"
},
- "services.testsrv.activate": {
+ "services.testsrv_service.activate": {
"owner": "default",
"value": true
},
- "services.testsrv.manage": {
+ "services.testsrv_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70service_base/makedict/base.json b/tests/dictionaries_old/70service_base/makedict/base.json
index d89ef3da8..0ffb99685 100644
--- a/tests/dictionaries_old/70service_base/makedict/base.json
+++ b/tests/dictionaries_old/70service_base/makedict/base.json
@@ -1,5 +1,5 @@
{
"rougail.general.mode_conteneur_actif": "oui",
- "services.testsrv.activate": true,
- "services.testsrv.manage": true
+ "services.testsrv_service.activate": true,
+ "services.testsrv_service.manage": true
}
diff --git a/tests/dictionaries_old/70service_base/makedict/before.json b/tests/dictionaries_old/70service_base/makedict/before.json
index c8847b435..ef29924ce 100644
--- a/tests/dictionaries_old/70service_base/makedict/before.json
+++ b/tests/dictionaries_old/70service_base/makedict/before.json
@@ -3,11 +3,11 @@
"owner": "default",
"value": "oui"
},
- "services.testsrv.activate": {
+ "services.testsrv_service.activate": {
"owner": "default",
"value": true
},
- "services.testsrv.manage": {
+ "services.testsrv_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70service_base/result/rougail/00-base.yml b/tests/dictionaries_old/70service_base/result/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries_old/70service_base/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_base/result/services/00-base.yml b/tests/dictionaries_old/70service_base/result/services/00-base.yml
new file mode 100644
index 000000000..7802be823
--- /dev/null
+++ b/tests/dictionaries_old/70service_base/result/services/00-base.yml
@@ -0,0 +1,2 @@
+testsrv.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_base/tiramisu/base.py b/tests/dictionaries_old/70service_base/tiramisu/base.py
index b3344af34..3bb44a9ee 100644
--- a/tests/dictionaries_old/70service_base/tiramisu/base.py
+++ b/tests/dictionaries_old/70service_base/tiramisu/base.py
@@ -1,21 +1,34 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_6 = BoolOption(name="activate", doc="activate", default=True)
option_7 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="testsrv", doc="testsrv", children=[option_6, option_7])
-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])
+optiondescription_5 = OptionDescription(name="testsrv_service", doc="testsrv_service", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70service_base/tiramisu/multi.py b/tests/dictionaries_old/70service_base/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_base/tiramisu/multi.py
rename to tests/dictionaries_old/70service_base/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_base/xml/00-base.xml b/tests/dictionaries_old/70service_base/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_base/xml/00-base.xml
rename to tests/dictionaries_old/70service_base/xml/00-base.xml
diff --git a/tests/dictionaries/70service_base/yml/00-base.yml b/tests/dictionaries_old/70service_base/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_base/yml/00-base.yml
rename to tests/dictionaries_old/70service_base/yml/00-base.yml
diff --git a/tests/dictionaries/70container_files_symlink_variable/__init__.py b/tests/dictionaries_old/70service_disabled/__init__.py
similarity index 100%
rename from tests/dictionaries/70container_files_symlink_variable/__init__.py
rename to tests/dictionaries_old/70service_disabled/__init__.py
diff --git a/tests/dictionaries/70service_disabled/makedict/after.json b/tests/dictionaries_old/70service_disabled/makedict/after.json
similarity index 100%
rename from tests/dictionaries/70service_disabled/makedict/after.json
rename to tests/dictionaries_old/70service_disabled/makedict/after.json
diff --git a/tests/dictionaries/70service_disabled/makedict/base.json b/tests/dictionaries_old/70service_disabled/makedict/base.json
similarity index 100%
rename from tests/dictionaries/70service_disabled/makedict/base.json
rename to tests/dictionaries_old/70service_disabled/makedict/base.json
diff --git a/tests/dictionaries/70service_disabled/makedict/before.json b/tests/dictionaries_old/70service_disabled/makedict/before.json
similarity index 100%
rename from tests/dictionaries/70service_disabled/makedict/before.json
rename to tests/dictionaries_old/70service_disabled/makedict/before.json
diff --git a/tests/dictionaries/70service_disabled/no_base b/tests/dictionaries_old/70service_disabled/no_base
similarity index 100%
rename from tests/dictionaries/70service_disabled/no_base
rename to tests/dictionaries_old/70service_disabled/no_base
diff --git a/tests/dictionaries_old/70service_disabled/result/rougail/00-base.yml b/tests/dictionaries_old/70service_disabled/result/rougail/00-base.yml
new file mode 100644
index 000000000..a0de4b9e8
--- /dev/null
+++ b/tests/dictionaries_old/70service_disabled/result/rougail/00-base.yml
@@ -0,0 +1,3 @@
+condition:
+ default: 'no'
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_disabled/result/services/00-base.yml b/tests/dictionaries_old/70service_disabled/result/services/00-base.yml
new file mode 100644
index 000000000..6475a5cf5
--- /dev/null
+++ b/tests/dictionaries_old/70service_disabled/result/services/00-base.yml
@@ -0,0 +1,2 @@
+test.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_disabled/tiramisu/base.py b/tests/dictionaries_old/70service_disabled/tiramisu/base.py
new file mode 100644
index 000000000..cd1254597
--- /dev/null
+++ b/tests/dictionaries_old/70service_disabled/tiramisu/base.py
@@ -0,0 +1,33 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_5 = BoolOption(name="activate", doc="activate", default=True)
+option_6 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_4 = OptionDescription(name="test_service", doc="test_service", children=[option_5, option_6])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/70service_disabled/tiramisu/multi.py b/tests/dictionaries_old/70service_disabled/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_disabled/tiramisu/multi.py
rename to tests/dictionaries_old/70service_disabled/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_disabled/xml/00-base.xml b/tests/dictionaries_old/70service_disabled/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_disabled/xml/00-base.xml
rename to tests/dictionaries_old/70service_disabled/xml/00-base.xml
diff --git a/tests/dictionaries/70service_disabled/yml/00-base.yml b/tests/dictionaries_old/70service_disabled/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_disabled/yml/00-base.yml
rename to tests/dictionaries_old/70service_disabled/yml/00-base.yml
diff --git a/tests/dictionaries/70container_files_twice/__init__.py b/tests/dictionaries_old/70service_disabled_undisable/__init__.py
similarity index 100%
rename from tests/dictionaries/70container_files_twice/__init__.py
rename to tests/dictionaries_old/70service_disabled_undisable/__init__.py
diff --git a/tests/dictionaries/70service_disabled_undisable/makedict/after.json b/tests/dictionaries_old/70service_disabled_undisable/makedict/after.json
similarity index 100%
rename from tests/dictionaries/70service_disabled_undisable/makedict/after.json
rename to tests/dictionaries_old/70service_disabled_undisable/makedict/after.json
diff --git a/tests/dictionaries/70service_disabled_undisable/makedict/base.json b/tests/dictionaries_old/70service_disabled_undisable/makedict/base.json
similarity index 100%
rename from tests/dictionaries/70service_disabled_undisable/makedict/base.json
rename to tests/dictionaries_old/70service_disabled_undisable/makedict/base.json
diff --git a/tests/dictionaries/70service_disabled_undisable/makedict/before.json b/tests/dictionaries_old/70service_disabled_undisable/makedict/before.json
similarity index 100%
rename from tests/dictionaries/70service_disabled_undisable/makedict/before.json
rename to tests/dictionaries_old/70service_disabled_undisable/makedict/before.json
diff --git a/tests/dictionaries_old/70service_disabled_undisable/result/rougail/00-base.yml b/tests/dictionaries_old/70service_disabled_undisable/result/rougail/00-base.yml
new file mode 100644
index 000000000..a0de4b9e8
--- /dev/null
+++ b/tests/dictionaries_old/70service_disabled_undisable/result/rougail/00-base.yml
@@ -0,0 +1,3 @@
+condition:
+ default: 'no'
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_disabled_undisable/result/services/00-base.yml b/tests/dictionaries_old/70service_disabled_undisable/result/services/00-base.yml
new file mode 100644
index 000000000..6475a5cf5
--- /dev/null
+++ b/tests/dictionaries_old/70service_disabled_undisable/result/services/00-base.yml
@@ -0,0 +1,2 @@
+test.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_disabled_undisable/tiramisu/base.py b/tests/dictionaries_old/70service_disabled_undisable/tiramisu/base.py
new file mode 100644
index 000000000..cd1254597
--- /dev/null
+++ b/tests/dictionaries_old/70service_disabled_undisable/tiramisu/base.py
@@ -0,0 +1,33 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_5 = BoolOption(name="activate", doc="activate", default=True)
+option_6 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_4 = OptionDescription(name="test_service", doc="test_service", children=[option_5, option_6])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/70service_disabled_undisable/tiramisu/multi.py b/tests/dictionaries_old/70service_disabled_undisable/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_disabled_undisable/tiramisu/multi.py
rename to tests/dictionaries_old/70service_disabled_undisable/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_disabled_undisable/xml/00-base.xml b/tests/dictionaries_old/70service_disabled_undisable/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_disabled_undisable/xml/00-base.xml
rename to tests/dictionaries_old/70service_disabled_undisable/xml/00-base.xml
diff --git a/tests/dictionaries/70service_disabled_undisable/yml/00-base.yml b/tests/dictionaries_old/70service_disabled_undisable/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_disabled_undisable/yml/00-base.yml
rename to tests/dictionaries_old/70service_disabled_undisable/yml/00-base.yml
diff --git a/tests/dictionaries/70container_filesmulti/__init__.py b/tests/dictionaries_old/70service_engine/__init__.py
similarity index 100%
rename from tests/dictionaries/70container_filesmulti/__init__.py
rename to tests/dictionaries_old/70service_engine/__init__.py
diff --git a/tests/dictionaries/70service_base/makedict/after.json b/tests/dictionaries_old/70service_engine/makedict/after.json
similarity index 100%
rename from tests/dictionaries/70service_base/makedict/after.json
rename to tests/dictionaries_old/70service_engine/makedict/after.json
diff --git a/tests/dictionaries/70service_base/makedict/base.json b/tests/dictionaries_old/70service_engine/makedict/base.json
similarity index 100%
rename from tests/dictionaries/70service_base/makedict/base.json
rename to tests/dictionaries_old/70service_engine/makedict/base.json
diff --git a/tests/dictionaries/70service_base/makedict/before.json b/tests/dictionaries_old/70service_engine/makedict/before.json
similarity index 100%
rename from tests/dictionaries/70service_base/makedict/before.json
rename to tests/dictionaries_old/70service_engine/makedict/before.json
diff --git a/tests/dictionaries/70service_engine/no_base b/tests/dictionaries_old/70service_engine/no_base
similarity index 100%
rename from tests/dictionaries/70service_engine/no_base
rename to tests/dictionaries_old/70service_engine/no_base
diff --git a/tests/dictionaries_old/70service_engine/result/rougail/00-base.yml b/tests/dictionaries_old/70service_engine/result/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries_old/70service_engine/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_engine/result/services/00-base.yml b/tests/dictionaries_old/70service_engine/result/services/00-base.yml
new file mode 100644
index 000000000..7802be823
--- /dev/null
+++ b/tests/dictionaries_old/70service_engine/result/services/00-base.yml
@@ -0,0 +1,2 @@
+testsrv.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_engine/tiramisu/base.py b/tests/dictionaries_old/70service_engine/tiramisu/base.py
new file mode 100644
index 000000000..3bb44a9ee
--- /dev/null
+++ b/tests/dictionaries_old/70service_engine/tiramisu/base.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="testsrv_service", doc="testsrv_service", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70service_engine/tiramisu/multi.py b/tests/dictionaries_old/70service_engine/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_engine/tiramisu/multi.py
rename to tests/dictionaries_old/70service_engine/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_engine/tmpl/testsrv.service b/tests/dictionaries_old/70service_engine/tmpl/testsrv.service
similarity index 100%
rename from tests/dictionaries/70service_engine/tmpl/testsrv.service
rename to tests/dictionaries_old/70service_engine/tmpl/testsrv.service
diff --git a/tests/dictionaries/70service_engine/xml/00-base.xml b/tests/dictionaries_old/70service_engine/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_engine/xml/00-base.xml
rename to tests/dictionaries_old/70service_engine/xml/00-base.xml
diff --git a/tests/dictionaries/70service_engine/yml/00-base.yml b/tests/dictionaries_old/70service_engine/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_engine/yml/00-base.yml
rename to tests/dictionaries_old/70service_engine/yml/00-base.yml
diff --git a/tests/dictionaries/70container_filesredefine/__init__.py b/tests/dictionaries_old/70service_engine_dash/__init__.py
similarity index 100%
rename from tests/dictionaries/70container_filesredefine/__init__.py
rename to tests/dictionaries_old/70service_engine_dash/__init__.py
diff --git a/tests/dictionaries/70service_engine_dash/makedict/after.json b/tests/dictionaries_old/70service_engine_dash/makedict/after.json
similarity index 100%
rename from tests/dictionaries/70service_engine_dash/makedict/after.json
rename to tests/dictionaries_old/70service_engine_dash/makedict/after.json
diff --git a/tests/dictionaries/70service_engine_dash/makedict/base.json b/tests/dictionaries_old/70service_engine_dash/makedict/base.json
similarity index 100%
rename from tests/dictionaries/70service_engine_dash/makedict/base.json
rename to tests/dictionaries_old/70service_engine_dash/makedict/base.json
diff --git a/tests/dictionaries/70service_engine_dash/makedict/before.json b/tests/dictionaries_old/70service_engine_dash/makedict/before.json
similarity index 100%
rename from tests/dictionaries/70service_engine_dash/makedict/before.json
rename to tests/dictionaries_old/70service_engine_dash/makedict/before.json
diff --git a/tests/dictionaries/70service_engine_dash/no_base b/tests/dictionaries_old/70service_engine_dash/no_base
similarity index 100%
rename from tests/dictionaries/70service_engine_dash/no_base
rename to tests/dictionaries_old/70service_engine_dash/no_base
diff --git a/tests/dictionaries_old/70service_engine_dash/result/rougail/00-base.yml b/tests/dictionaries_old/70service_engine_dash/result/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries_old/70service_engine_dash/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_engine_dash/result/services/00-base.yml b/tests/dictionaries_old/70service_engine_dash/result/services/00-base.yml
new file mode 100644
index 000000000..903c5dd5d
--- /dev/null
+++ b/tests/dictionaries_old/70service_engine_dash/result/services/00-base.yml
@@ -0,0 +1,2 @@
+test-srv.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_engine_dash/tiramisu/base.py b/tests/dictionaries_old/70service_engine_dash/tiramisu/base.py
new file mode 100644
index 000000000..fb7ed1546
--- /dev/null
+++ b/tests/dictionaries_old/70service_engine_dash/tiramisu/base.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_srv_service", doc="test_srv_service", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70service_engine_dash/tiramisu/multi.py b/tests/dictionaries_old/70service_engine_dash/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_engine_dash/tiramisu/multi.py
rename to tests/dictionaries_old/70service_engine_dash/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_engine_dash/tmpl/test-srv.service b/tests/dictionaries_old/70service_engine_dash/tmpl/test-srv.service
similarity index 100%
rename from tests/dictionaries/70service_engine_dash/tmpl/test-srv.service
rename to tests/dictionaries_old/70service_engine_dash/tmpl/test-srv.service
diff --git a/tests/dictionaries/70service_engine_dash/xml/00-base.xml b/tests/dictionaries_old/70service_engine_dash/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_engine_dash/xml/00-base.xml
rename to tests/dictionaries_old/70service_engine_dash/xml/00-base.xml
diff --git a/tests/dictionaries/70service_engine_dash/yml/00-base.yml b/tests/dictionaries_old/70service_engine_dash/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_engine_dash/yml/00-base.yml
rename to tests/dictionaries_old/70service_engine_dash/yml/00-base.yml
diff --git a/tests/dictionaries/70container_new/__init__.py b/tests/dictionaries_old/70service_mount/__init__.py
similarity index 100%
rename from tests/dictionaries/70container_new/__init__.py
rename to tests/dictionaries_old/70service_mount/__init__.py
diff --git a/tests/dictionaries/70service_mount/makedict/after.json b/tests/dictionaries_old/70service_mount/makedict/after.json
similarity index 100%
rename from tests/dictionaries/70service_mount/makedict/after.json
rename to tests/dictionaries_old/70service_mount/makedict/after.json
diff --git a/tests/dictionaries/70service_mount/makedict/base.json b/tests/dictionaries_old/70service_mount/makedict/base.json
similarity index 100%
rename from tests/dictionaries/70service_mount/makedict/base.json
rename to tests/dictionaries_old/70service_mount/makedict/base.json
diff --git a/tests/dictionaries/70service_mount/makedict/before.json b/tests/dictionaries_old/70service_mount/makedict/before.json
similarity index 100%
rename from tests/dictionaries/70service_mount/makedict/before.json
rename to tests/dictionaries_old/70service_mount/makedict/before.json
diff --git a/tests/dictionaries/70service_mount/no_base b/tests/dictionaries_old/70service_mount/no_base
similarity index 100%
rename from tests/dictionaries/70service_mount/no_base
rename to tests/dictionaries_old/70service_mount/no_base
diff --git a/tests/dictionaries_old/70service_mount/result/rougail/00-base.yml b/tests/dictionaries_old/70service_mount/result/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries_old/70service_mount/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_mount/result/services/00-base.yml b/tests/dictionaries_old/70service_mount/result/services/00-base.yml
new file mode 100644
index 000000000..ff7b1f010
--- /dev/null
+++ b/tests/dictionaries_old/70service_mount/result/services/00-base.yml
@@ -0,0 +1,2 @@
+testsrv.mount: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_mount/tiramisu/base.py b/tests/dictionaries_old/70service_mount/tiramisu/base.py
new file mode 100644
index 000000000..912cc01a9
--- /dev/null
+++ b/tests/dictionaries_old/70service_mount/tiramisu/base.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="testsrv_mount", doc="testsrv_mount", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "mount")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70service_mount/tiramisu/multi.py b/tests/dictionaries_old/70service_mount/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_mount/tiramisu/multi.py
rename to tests/dictionaries_old/70service_mount/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_mount/tmpl/testsrv.mount b/tests/dictionaries_old/70service_mount/tmpl/testsrv.mount
similarity index 100%
rename from tests/dictionaries/70service_mount/tmpl/testsrv.mount
rename to tests/dictionaries_old/70service_mount/tmpl/testsrv.mount
diff --git a/tests/dictionaries/70service_mount/xml/00-base.xml b/tests/dictionaries_old/70service_mount/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_mount/xml/00-base.xml
rename to tests/dictionaries_old/70service_mount/xml/00-base.xml
diff --git a/tests/dictionaries/70service_mount/yml/00-base.yml b/tests/dictionaries_old/70service_mount/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_mount/yml/00-base.yml
rename to tests/dictionaries_old/70service_mount/yml/00-base.yml
diff --git a/tests/dictionaries_old/70service_not_managed/00-base.xml b/tests/dictionaries_old/70service_not_managed/00-base.xml
deleted file mode 100644
index cb3e5b5a5..000000000
--- a/tests/dictionaries_old/70service_not_managed/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- /tmp/test
-
-
-
-
- mailname
-
-
-
diff --git a/tests/dictionaries_old/70service_not_managed/makedict/after.json b/tests/dictionaries_old/70service_not_managed/makedict/after.json
index 8b3606f3b..52eaee29b 100644
--- a/tests/dictionaries_old/70service_not_managed/makedict/after.json
+++ b/tests/dictionaries_old/70service_not_managed/makedict/after.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": "mailname"
},
- "services.test.files.test.name": {
+ "services.test_service.files.test.name": {
"owner": "default",
"value": "/tmp/test"
},
- "services.test.files.test.activate": {
+ "services.test_service.files.test.source": {
+ "owner": "default",
+ "value": "test"
+ },
+ "services.test_service.files.test.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": false
}
diff --git a/tests/dictionaries_old/70service_not_managed/makedict/base.json b/tests/dictionaries_old/70service_not_managed/makedict/base.json
index 609183768..45259b561 100644
--- a/tests/dictionaries_old/70service_not_managed/makedict/base.json
+++ b/tests/dictionaries_old/70service_not_managed/makedict/base.json
@@ -1,7 +1,8 @@
{
"rougail.var": "mailname",
- "services.test.files.test.name": "/tmp/test",
- "services.test.files.test.activate": true,
- "services.test.activate": true,
- "services.test.manage": false
+ "services.test_service.files.test.name": "/tmp/test",
+ "services.test_service.files.test.source": "test",
+ "services.test_service.files.test.activate": true,
+ "services.test_service.activate": true,
+ "services.test_service.manage": false
}
diff --git a/tests/dictionaries_old/70service_not_managed/makedict/before.json b/tests/dictionaries_old/70service_not_managed/makedict/before.json
index 8b3606f3b..52eaee29b 100644
--- a/tests/dictionaries_old/70service_not_managed/makedict/before.json
+++ b/tests/dictionaries_old/70service_not_managed/makedict/before.json
@@ -3,19 +3,23 @@
"owner": "default",
"value": "mailname"
},
- "services.test.files.test.name": {
+ "services.test_service.files.test.name": {
"owner": "default",
"value": "/tmp/test"
},
- "services.test.files.test.activate": {
+ "services.test_service.files.test.source": {
+ "owner": "default",
+ "value": "test"
+ },
+ "services.test_service.files.test.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": false
}
diff --git a/tests/dictionaries_old/70service_not_managed/result/rougail/00-base.yml b/tests/dictionaries_old/70service_not_managed/result/rougail/00-base.yml
new file mode 100644
index 000000000..0a95c96ec
--- /dev/null
+++ b/tests/dictionaries_old/70service_not_managed/result/rougail/00-base.yml
@@ -0,0 +1,4 @@
+var:
+ type: string
+ default: mailname
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_not_managed/result/services/00-base.yml b/tests/dictionaries_old/70service_not_managed/result/services/00-base.yml
new file mode 100644
index 000000000..3fb008396
--- /dev/null
+++ b/tests/dictionaries_old/70service_not_managed/result/services/00-base.yml
@@ -0,0 +1,4 @@
+test.service:
+ files:
+ /tmp/test: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_not_managed/tiramisu/base.py b/tests/dictionaries_old/70service_not_managed/tiramisu/base.py
index 14e812e29..44b7da865 100644
--- a/tests/dictionaries_old/70service_not_managed/tiramisu/base.py
+++ b/tests/dictionaries_old/70service_not_managed/tiramisu/base.py
@@ -1,25 +1,38 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = StrOption(name="var", doc="var", default="mailname", properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
option_7 = FilenameOption(name="name", doc="name", default="/tmp/test")
-option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_6 = OptionDescription(name="test", doc="test", children=[option_7, option_8])
-option_6.impl_set_information('source', "test")
-option_5 = OptionDescription(name="files", doc="files", children=[option_6])
+option_8 = FilenameOption(name="source", doc="source", default="/tmp/test")
option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = BoolOption(name="manage", doc="manage", default=False)
-option_4 = OptionDescription(name="test", doc="test", children=[option_5, option_9, option_10])
-option_3 = OptionDescription(name="services", doc="services", children=[option_4], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_3])
+optiondescription_6 = OptionDescription(name="test", doc="test", children=[option_7, option_8, option_9])
+optiondescription_5 = OptionDescription(name="files", doc="files", children=[optiondescription_6])
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+option_11 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_4 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_5, option_10, option_11])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/70service_not_managed/tiramisu/multi.py b/tests/dictionaries_old/70service_not_managed/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_not_managed/tiramisu/multi.py
rename to tests/dictionaries_old/70service_not_managed/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_not_managed/xml/00-base.xml b/tests/dictionaries_old/70service_not_managed/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_not_managed/xml/00-base.xml
rename to tests/dictionaries_old/70service_not_managed/xml/00-base.xml
diff --git a/tests/dictionaries/70service_not_managed/yml/00-base.yml b/tests/dictionaries_old/70service_not_managed/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_not_managed/yml/00-base.yml
rename to tests/dictionaries_old/70service_not_managed/yml/00-base.yml
diff --git a/tests/dictionaries_old/70service_servicelist/00-base.xml b/tests/dictionaries_old/70service_servicelist/00-base.xml
deleted file mode 100644
index 800cad3ce..000000000
--- a/tests/dictionaries_old/70service_servicelist/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
- no
-
-
-
-
- yes
- test
-
-
-
diff --git a/tests/dictionaries_old/70service_servicelist/makedict/after.json b/tests/dictionaries_old/70service_servicelist/makedict/after.json
index 70056b4ad..761b7349d 100644
--- a/tests/dictionaries_old/70service_servicelist/makedict/after.json
+++ b/tests/dictionaries_old/70service_servicelist/makedict/after.json
@@ -3,11 +3,11 @@
"owner": "default",
"value": "no"
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70service_servicelist/makedict/base.json b/tests/dictionaries_old/70service_servicelist/makedict/base.json
index 939e54ebb..a27d27128 100644
--- a/tests/dictionaries_old/70service_servicelist/makedict/base.json
+++ b/tests/dictionaries_old/70service_servicelist/makedict/base.json
@@ -1,5 +1,5 @@
{
"rougail.condition": "no",
- "services.test.activate": true,
- "services.test.manage": true
+ "services.test_service.activate": true,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70service_servicelist/makedict/before.json b/tests/dictionaries_old/70service_servicelist/makedict/before.json
index 70056b4ad..761b7349d 100644
--- a/tests/dictionaries_old/70service_servicelist/makedict/before.json
+++ b/tests/dictionaries_old/70service_servicelist/makedict/before.json
@@ -3,11 +3,11 @@
"owner": "default",
"value": "no"
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70service_servicelist/result/rougail/00-base.yml b/tests/dictionaries_old/70service_servicelist/result/rougail/00-base.yml
new file mode 100644
index 000000000..a0de4b9e8
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist/result/rougail/00-base.yml
@@ -0,0 +1,3 @@
+condition:
+ default: 'no'
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_servicelist/result/services/00-base.yml b/tests/dictionaries_old/70service_servicelist/result/services/00-base.yml
new file mode 100644
index 000000000..94068b4b7
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist/result/services/00-base.yml
@@ -0,0 +1,5 @@
+test.service:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.condition == "yes" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_servicelist/tiramisu/base.py b/tests/dictionaries_old/70service_servicelist/tiramisu/base.py
index a5bc5a3f8..ee75730b2 100644
--- a/tests/dictionaries_old/70service_servicelist/tiramisu/base.py
+++ b/tests/dictionaries_old/70service_servicelist/tiramisu/base.py
@@ -1,20 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_5 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("yes")})))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_5 = BoolOption(name="activate", doc="activate", default=False)
option_6 = BoolOption(name="manage", doc="manage", default=True)
-option_4 = OptionDescription(name="test", doc="test", children=[option_5, option_6])
-option_3 = OptionDescription(name="services", doc="services", children=[option_4], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_3])
+optiondescription_4 = OptionDescription(name="test_service", doc="test_service", children=[option_5, option_6])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/70service_servicelist/tiramisu/multi.py b/tests/dictionaries_old/70service_servicelist/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_servicelist/tiramisu/multi.py
rename to tests/dictionaries_old/70service_servicelist/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_servicelist/xml/00-base.xml b/tests/dictionaries_old/70service_servicelist/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_servicelist/xml/00-base.xml
rename to tests/dictionaries_old/70service_servicelist/xml/00-base.xml
diff --git a/tests/dictionaries/70service_servicelist/yml/00-base.yml b/tests/dictionaries_old/70service_servicelist/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_servicelist/yml/00-base.yml
rename to tests/dictionaries_old/70service_servicelist/yml/00-base.yml
diff --git a/tests/dictionaries_old/70service_servicelist_disabled_if_in/00-base.xml b/tests/dictionaries_old/70service_servicelist_disabled_if_in/00-base.xml
deleted file mode 100644
index 8a68f585b..000000000
--- a/tests/dictionaries_old/70service_servicelist_disabled_if_in/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
- no
-
-
- no
-
-
-
-
- no
- condition2
-
-
- yes
- test
-
-
-
diff --git a/tests/dictionaries_old/70service_servicelist_disabled_if_in/makedict/after.json b/tests/dictionaries_old/70service_servicelist_disabled_if_in/makedict/after.json
index 2eba52588..ba51aab90 100644
--- a/tests/dictionaries_old/70service_servicelist_disabled_if_in/makedict/after.json
+++ b/tests/dictionaries_old/70service_servicelist_disabled_if_in/makedict/after.json
@@ -3,11 +3,11 @@
"owner": "default",
"value": "no"
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": false
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70service_servicelist_disabled_if_in/makedict/base.json b/tests/dictionaries_old/70service_servicelist_disabled_if_in/makedict/base.json
index e97d9ea74..8626d1785 100644
--- a/tests/dictionaries_old/70service_servicelist_disabled_if_in/makedict/base.json
+++ b/tests/dictionaries_old/70service_servicelist_disabled_if_in/makedict/base.json
@@ -1,5 +1,5 @@
{
"rougail.condition1": "no",
- "services.test.activate": false,
- "services.test.manage": true
+ "services.test_service.activate": false,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70service_servicelist_disabled_if_in/makedict/before.json b/tests/dictionaries_old/70service_servicelist_disabled_if_in/makedict/before.json
index 2eba52588..ba51aab90 100644
--- a/tests/dictionaries_old/70service_servicelist_disabled_if_in/makedict/before.json
+++ b/tests/dictionaries_old/70service_servicelist_disabled_if_in/makedict/before.json
@@ -3,11 +3,11 @@
"owner": "default",
"value": "no"
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": false
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70service_servicelist_disabled_if_in/result/rougail/00-base.yml b/tests/dictionaries_old/70service_servicelist_disabled_if_in/result/rougail/00-base.yml
new file mode 100644
index 000000000..65d6747ac
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist_disabled_if_in/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+condition1:
+ default: 'no'
+condition2:
+ default: 'no'
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.condition1 == "no" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_servicelist_disabled_if_in/result/services/00-base.yml b/tests/dictionaries_old/70service_servicelist_disabled_if_in/result/services/00-base.yml
new file mode 100644
index 000000000..bfaf86e99
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist_disabled_if_in/result/services/00-base.yml
@@ -0,0 +1,5 @@
+test.service:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.condition2 == "yes" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_servicelist_disabled_if_in/tiramisu/base.py b/tests/dictionaries_old/70service_servicelist_disabled_if_in/tiramisu/base.py
index 38834e171..77f749da6 100644
--- a/tests/dictionaries_old/70service_servicelist_disabled_if_in/tiramisu/base.py
+++ b/tests/dictionaries_old/70service_servicelist_disabled_if_in/tiramisu/base.py
@@ -1,21 +1,34 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = StrOption(name="condition1", doc="condition1", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = StrOption(name="condition2", doc="condition2", default="no", properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, todict=True, notraisepropertyerror=True), 'expected': ParamValue("no")}))}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
-option_6 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3, notraisepropertyerror=True), 'expected_0': ParamValue("yes")})))
+option_3 = StrOption(name="condition2", doc="condition2", default="no", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
+option_6 = BoolOption(name="activate", doc="activate", default=False)
option_7 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_7])
-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])
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70service_servicelist_disabled_if_in/tiramisu/multi.py b/tests/dictionaries_old/70service_servicelist_disabled_if_in/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_servicelist_disabled_if_in/tiramisu/multi.py
rename to tests/dictionaries_old/70service_servicelist_disabled_if_in/tiramisu/multi.py
diff --git a/tests/dictionaries_old/70service_servicelist_disabled_if_in/xml/00-base.xml b/tests/dictionaries_old/70service_servicelist_disabled_if_in/xml/00-base.xml
new file mode 100644
index 000000000..c39d7894b
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist_disabled_if_in/xml/00-base.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+ no
+
+
+ no
+
+
+
+
+ no
+ condition2
+
+
+ yes
+ test
+
+
+
diff --git a/tests/dictionaries/70service_servicelist_disabled_if_in/yml/00-base.yml b/tests/dictionaries_old/70service_servicelist_disabled_if_in/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_servicelist_disabled_if_in/yml/00-base.yml
rename to tests/dictionaries_old/70service_servicelist_disabled_if_in/yml/00-base.yml
diff --git a/tests/dictionaries/70container_newnocont/__init__.py b/tests/dictionaries_old/70service_servicelist_extra/__init__.py
similarity index 100%
rename from tests/dictionaries/70container_newnocont/__init__.py
rename to tests/dictionaries_old/70service_servicelist_extra/__init__.py
diff --git a/tests/dictionaries/70service_servicelist_extra/makedict/after.json b/tests/dictionaries_old/70service_servicelist_extra/makedict/after.json
similarity index 100%
rename from tests/dictionaries/70service_servicelist_extra/makedict/after.json
rename to tests/dictionaries_old/70service_servicelist_extra/makedict/after.json
diff --git a/tests/dictionaries/70service_servicelist_extra/makedict/base.json b/tests/dictionaries_old/70service_servicelist_extra/makedict/base.json
similarity index 100%
rename from tests/dictionaries/70service_servicelist_extra/makedict/base.json
rename to tests/dictionaries_old/70service_servicelist_extra/makedict/base.json
diff --git a/tests/dictionaries/70service_servicelist_extra/makedict/before.json b/tests/dictionaries_old/70service_servicelist_extra/makedict/before.json
similarity index 100%
rename from tests/dictionaries/70service_servicelist_extra/makedict/before.json
rename to tests/dictionaries_old/70service_servicelist_extra/makedict/before.json
diff --git a/tests/dictionaries_old/70service_servicelist_extra/result/extra/00-base.yml b/tests/dictionaries_old/70service_servicelist_extra/result/extra/00-base.yml
new file mode 100644
index 000000000..a0de4b9e8
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist_extra/result/extra/00-base.yml
@@ -0,0 +1,3 @@
+condition:
+ default: 'no'
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_servicelist_extra/result/services/00-base.yml b/tests/dictionaries_old/70service_servicelist_extra/result/services/00-base.yml
new file mode 100644
index 000000000..6475a5cf5
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist_extra/result/services/00-base.yml
@@ -0,0 +1,2 @@
+test.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_servicelist_extra/tiramisu/base.py b/tests/dictionaries_old/70service_servicelist_extra/tiramisu/base.py
new file mode 100644
index 000000000..7768a199d
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist_extra/tiramisu/base.py
@@ -0,0 +1,33 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_2 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="extra", doc="extra", children=[option_2], properties=frozenset({"normal"}))
+option_5 = BoolOption(name="activate", doc="activate", default=True)
+option_6 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_4 = OptionDescription(name="test_service", doc="test_service", children=[option_5, option_6])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/70service_servicelist_extra/tiramisu/multi.py b/tests/dictionaries_old/70service_servicelist_extra/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_servicelist_extra/tiramisu/multi.py
rename to tests/dictionaries_old/70service_servicelist_extra/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_servicelist_extra/xml/00-base.xml b/tests/dictionaries_old/70service_servicelist_extra/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_servicelist_extra/xml/00-base.xml
rename to tests/dictionaries_old/70service_servicelist_extra/xml/00-base.xml
diff --git a/tests/dictionaries/70service_servicelist_extra/xml/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/70service_servicelist_extra/xml/extra_dirs/extra/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_servicelist_extra/xml/extra_dirs/extra/00-base.xml
rename to tests/dictionaries_old/70service_servicelist_extra/xml/extra_dirs/extra/00-base.xml
diff --git a/tests/dictionaries/70service_servicelist_extra/yml/00-base.yml b/tests/dictionaries_old/70service_servicelist_extra/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_servicelist_extra/yml/00-base.yml
rename to tests/dictionaries_old/70service_servicelist_extra/yml/00-base.yml
diff --git a/tests/dictionaries/70service_servicelist_extra/yml/extra_dirs/extra/00-base.yml b/tests/dictionaries_old/70service_servicelist_extra/yml/extra_dirs/extra/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_servicelist_extra/yml/extra_dirs/extra/00-base.yml
rename to tests/dictionaries_old/70service_servicelist_extra/yml/extra_dirs/extra/00-base.yml
diff --git a/tests/dictionaries_old/70service_servicelist_file/00-base.xml b/tests/dictionaries_old/70service_servicelist_file/00-base.xml
deleted file mode 100644
index b74620b45..000000000
--- a/tests/dictionaries_old/70service_servicelist_file/00-base.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- /etc/file
-
-
-
-
- no
-
-
- 192.168.0.1
-
-
-
-
- no
- test
-
-
-
diff --git a/tests/dictionaries_old/70service_servicelist_file/makedict/after.json b/tests/dictionaries_old/70service_servicelist_file/makedict/after.json
index 7fc9693a7..028c4975e 100644
--- a/tests/dictionaries_old/70service_servicelist_file/makedict/after.json
+++ b/tests/dictionaries_old/70service_servicelist_file/makedict/after.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "192.168.0.1"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
"owner": "default",
- "value": true
+ "value": "file"
},
- "services.test.activate": {
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": false
},
- "services.test.manage": {
+ "services.test_service.activate": {
+ "owner": "default",
+ "value": false
+ },
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70service_servicelist_file/makedict/base.json b/tests/dictionaries_old/70service_servicelist_file/makedict/base.json
index 8b3252bf1..9c84937ca 100644
--- a/tests/dictionaries_old/70service_servicelist_file/makedict/base.json
+++ b/tests/dictionaries_old/70service_servicelist_file/makedict/base.json
@@ -1,8 +1,9 @@
{
"rougail.condition": "no",
"rougail.nut_monitor_host": "192.168.0.1",
- "services.test.files.file.name": "/etc/file",
- "services.test.files.file.activate": true,
- "services.test.activate": false,
- "services.test.manage": true
+ "services.test_service.files.file.name": "/etc/file",
+ "services.test_service.files.file.source": "file",
+ "services.test_service.files.file.activate": false,
+ "services.test_service.activate": false,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70service_servicelist_file/makedict/before.json b/tests/dictionaries_old/70service_servicelist_file/makedict/before.json
index 7fc9693a7..028c4975e 100644
--- a/tests/dictionaries_old/70service_servicelist_file/makedict/before.json
+++ b/tests/dictionaries_old/70service_servicelist_file/makedict/before.json
@@ -7,19 +7,23 @@
"owner": "default",
"value": "192.168.0.1"
},
- "services.test.files.file.name": {
+ "services.test_service.files.file.name": {
"owner": "default",
"value": "/etc/file"
},
- "services.test.files.file.activate": {
+ "services.test_service.files.file.source": {
"owner": "default",
- "value": true
+ "value": "file"
},
- "services.test.activate": {
+ "services.test_service.files.file.activate": {
"owner": "default",
"value": false
},
- "services.test.manage": {
+ "services.test_service.activate": {
+ "owner": "default",
+ "value": false
+ },
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/70service_servicelist_file/no_base b/tests/dictionaries_old/70service_servicelist_file/no_base
similarity index 100%
rename from tests/dictionaries/70service_servicelist_file/no_base
rename to tests/dictionaries_old/70service_servicelist_file/no_base
diff --git a/tests/dictionaries_old/70service_servicelist_file/result/rougail/00-base.yml b/tests/dictionaries_old/70service_servicelist_file/result/rougail/00-base.yml
new file mode 100644
index 000000000..1feb78528
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist_file/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+condition:
+ default: 'no'
+nut_monitor_host:
+ type: ip
+ mandatory: true
+ default: 192.168.0.1
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_servicelist_file/result/services/00-base.yml b/tests/dictionaries_old/70service_servicelist_file/result/services/00-base.yml
new file mode 100644
index 000000000..a3d1d3f1f
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist_file/result/services/00-base.yml
@@ -0,0 +1,7 @@
+test.service:
+ files:
+ /etc/file: {}
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.condition == "no" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_servicelist_file/result/systemd/system/test.service b/tests/dictionaries_old/70service_servicelist_file/result/systemd/system/test.service
deleted file mode 120000
index dc1dc0cde..000000000
--- a/tests/dictionaries_old/70service_servicelist_file/result/systemd/system/test.service
+++ /dev/null
@@ -1 +0,0 @@
-/dev/null
\ No newline at end of file
diff --git a/tests/dictionaries_old/70service_servicelist_file/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70service_servicelist_file/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/70service_servicelist_file/tiramisu/base.py b/tests/dictionaries_old/70service_servicelist_file/tiramisu/base.py
index 6d98741bf..d9fecf5e2 100644
--- a/tests/dictionaries_old/70service_servicelist_file/tiramisu/base.py
+++ b/tests/dictionaries_old/70service_servicelist_file/tiramisu/base.py
@@ -1,26 +1,39 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
option_3 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.1", allow_reserved=True, properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
option_8 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9])
-option_7.impl_set_information('source', "file")
-option_6 = OptionDescription(name="files", doc="files", children=[option_7])
-option_10 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("no")})))
-option_11 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_10, option_11])
-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])
+option_9 = FilenameOption(name="source", doc="source", default="/etc/file")
+option_10 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10])
+optiondescription_6 = OptionDescription(name="files", doc="files", children=[optiondescription_7])
+option_11 = BoolOption(name="activate", doc="activate", default=False)
+option_12 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_11, option_12])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70service_servicelist_file/tiramisu/multi.py b/tests/dictionaries_old/70service_servicelist_file/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_servicelist_file/tiramisu/multi.py
rename to tests/dictionaries_old/70service_servicelist_file/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_servicelist_file/xml/00-base.xml b/tests/dictionaries_old/70service_servicelist_file/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_servicelist_file/xml/00-base.xml
rename to tests/dictionaries_old/70service_servicelist_file/xml/00-base.xml
diff --git a/tests/dictionaries/70service_servicelist_file/yml/00-base.yml b/tests/dictionaries_old/70service_servicelist_file/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_servicelist_file/yml/00-base.yml
rename to tests/dictionaries_old/70service_servicelist_file/yml/00-base.yml
diff --git a/tests/dictionaries_old/70service_servicelist_ip/00-base.xml b/tests/dictionaries_old/70service_servicelist_ip/00-base.xml
deleted file mode 100644
index fe7fe7483..000000000
--- a/tests/dictionaries_old/70service_servicelist_ip/00-base.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
- no
-
-
- 192.168.0.1
-
-
-
-
- no
- test
-
-
-
diff --git a/tests/dictionaries_old/70service_servicelist_ip/makedict/after.json b/tests/dictionaries_old/70service_servicelist_ip/makedict/after.json
index 73263cb6c..4edde0b79 100644
--- a/tests/dictionaries_old/70service_servicelist_ip/makedict/after.json
+++ b/tests/dictionaries_old/70service_servicelist_ip/makedict/after.json
@@ -7,19 +7,19 @@
"owner": "default",
"value": "192.168.0.1"
},
- "services.test.ip.nut_monitor_host.name": {
+ "services.test_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.1"
},
- "services.test.ip.nut_monitor_host.activate": {
+ "services.test_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": false
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70service_servicelist_ip/makedict/base.json b/tests/dictionaries_old/70service_servicelist_ip/makedict/base.json
index 07338b833..de499690e 100644
--- a/tests/dictionaries_old/70service_servicelist_ip/makedict/base.json
+++ b/tests/dictionaries_old/70service_servicelist_ip/makedict/base.json
@@ -1,8 +1,8 @@
{
"rougail.condition": "no",
"rougail.nut_monitor_host": "192.168.0.1",
- "services.test.ip.nut_monitor_host.name": "192.168.0.1",
- "services.test.ip.nut_monitor_host.activate": true,
- "services.test.activate": false,
- "services.test.manage": true
+ "services.test_service.ip.nut_monitor_host.name": "192.168.0.1",
+ "services.test_service.ip.nut_monitor_host.activate": true,
+ "services.test_service.activate": false,
+ "services.test_service.manage": true
}
diff --git a/tests/dictionaries_old/70service_servicelist_ip/makedict/before.json b/tests/dictionaries_old/70service_servicelist_ip/makedict/before.json
index 73263cb6c..4edde0b79 100644
--- a/tests/dictionaries_old/70service_servicelist_ip/makedict/before.json
+++ b/tests/dictionaries_old/70service_servicelist_ip/makedict/before.json
@@ -7,19 +7,19 @@
"owner": "default",
"value": "192.168.0.1"
},
- "services.test.ip.nut_monitor_host.name": {
+ "services.test_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.1"
},
- "services.test.ip.nut_monitor_host.activate": {
+ "services.test_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": false
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/70service_servicelist_ip/no_base b/tests/dictionaries_old/70service_servicelist_ip/no_base
similarity index 100%
rename from tests/dictionaries/70service_servicelist_ip/no_base
rename to tests/dictionaries_old/70service_servicelist_ip/no_base
diff --git a/tests/dictionaries_old/70service_servicelist_ip/result/rougail/00-base.yml b/tests/dictionaries_old/70service_servicelist_ip/result/rougail/00-base.yml
new file mode 100644
index 000000000..1feb78528
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist_ip/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+condition:
+ default: 'no'
+nut_monitor_host:
+ type: ip
+ mandatory: true
+ default: 192.168.0.1
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_servicelist_ip/result/services/00-base.yml b/tests/dictionaries_old/70service_servicelist_ip/result/services/00-base.yml
new file mode 100644
index 000000000..840d56d74
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist_ip/result/services/00-base.yml
@@ -0,0 +1,7 @@
+test.service:
+ ip:
+ rougail.nut_monitor_host: {}
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.condition == "no" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_servicelist_ip/result/systemd/system/test.service b/tests/dictionaries_old/70service_servicelist_ip/result/systemd/system/test.service
deleted file mode 120000
index dc1dc0cde..000000000
--- a/tests/dictionaries_old/70service_servicelist_ip/result/systemd/system/test.service
+++ /dev/null
@@ -1 +0,0 @@
-/dev/null
\ No newline at end of file
diff --git a/tests/dictionaries_old/70service_servicelist_ip/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70service_servicelist_ip/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/70service_servicelist_ip/tiramisu/base.py b/tests/dictionaries_old/70service_servicelist_ip/tiramisu/base.py
index aacd8323d..28f860c46 100644
--- a/tests/dictionaries_old/70service_servicelist_ip/tiramisu/base.py
+++ b/tests/dictionaries_old/70service_servicelist_ip/tiramisu/base.py
@@ -1,25 +1,38 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
option_3 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.1", allow_reserved=True, properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
option_8 = SymLinkOption(name="name", opt=option_3)
option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_8, option_9])
-option_6 = OptionDescription(name="ip", doc="ip", children=[option_7])
-option_10 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("no")})))
+optiondescription_7 = OptionDescription(name="rougail_nut_monitor_host", doc="rougail_nut_monitor_host", children=[option_8, option_9])
+optiondescription_6 = OptionDescription(name="ip", doc="ip", children=[optiondescription_7])
+option_10 = BoolOption(name="activate", doc="activate", default=False)
option_11 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="test", doc="test", children=[option_6, option_10, option_11])
-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])
+optiondescription_5 = OptionDescription(name="test_service", doc="test_service", children=[optiondescription_6, option_10, option_11])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70service_servicelist_ip/tiramisu/multi.py b/tests/dictionaries_old/70service_servicelist_ip/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_servicelist_ip/tiramisu/multi.py
rename to tests/dictionaries_old/70service_servicelist_ip/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_servicelist_ip/xml/00-base.xml b/tests/dictionaries_old/70service_servicelist_ip/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_servicelist_ip/xml/00-base.xml
rename to tests/dictionaries_old/70service_servicelist_ip/xml/00-base.xml
diff --git a/tests/dictionaries/70service_servicelist_ip/yml/00-base.yml b/tests/dictionaries_old/70service_servicelist_ip/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_servicelist_ip/yml/00-base.yml
rename to tests/dictionaries_old/70service_servicelist_ip/yml/00-base.yml
diff --git a/tests/dictionaries_old/70service_servicelist_not_managed/00-base.xml b/tests/dictionaries_old/70service_servicelist_not_managed/00-base.xml
deleted file mode 100644
index 88e0e411b..000000000
--- a/tests/dictionaries_old/70service_servicelist_not_managed/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
- no
-
-
-
-
- yes
- test
-
-
-
diff --git a/tests/dictionaries_old/70service_servicelist_not_managed/makedict/after.json b/tests/dictionaries_old/70service_servicelist_not_managed/makedict/after.json
index 983c11850..72627c717 100644
--- a/tests/dictionaries_old/70service_servicelist_not_managed/makedict/after.json
+++ b/tests/dictionaries_old/70service_servicelist_not_managed/makedict/after.json
@@ -3,11 +3,11 @@
"owner": "default",
"value": "no"
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": false
}
diff --git a/tests/dictionaries_old/70service_servicelist_not_managed/makedict/base.json b/tests/dictionaries_old/70service_servicelist_not_managed/makedict/base.json
index 14db4b00d..3be6c02de 100644
--- a/tests/dictionaries_old/70service_servicelist_not_managed/makedict/base.json
+++ b/tests/dictionaries_old/70service_servicelist_not_managed/makedict/base.json
@@ -1,5 +1,5 @@
{
"rougail.condition": "no",
- "services.test.activate": true,
- "services.test.manage": false
+ "services.test_service.activate": true,
+ "services.test_service.manage": false
}
diff --git a/tests/dictionaries_old/70service_servicelist_not_managed/makedict/before.json b/tests/dictionaries_old/70service_servicelist_not_managed/makedict/before.json
index 983c11850..72627c717 100644
--- a/tests/dictionaries_old/70service_servicelist_not_managed/makedict/before.json
+++ b/tests/dictionaries_old/70service_servicelist_not_managed/makedict/before.json
@@ -3,11 +3,11 @@
"owner": "default",
"value": "no"
},
- "services.test.activate": {
+ "services.test_service.activate": {
"owner": "default",
"value": true
},
- "services.test.manage": {
+ "services.test_service.manage": {
"owner": "default",
"value": false
}
diff --git a/tests/dictionaries_old/70service_servicelist_not_managed/result/rougail/00-base.yml b/tests/dictionaries_old/70service_servicelist_not_managed/result/rougail/00-base.yml
new file mode 100644
index 000000000..a0de4b9e8
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist_not_managed/result/rougail/00-base.yml
@@ -0,0 +1,3 @@
+condition:
+ default: 'no'
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_servicelist_not_managed/result/services/00-base.yml b/tests/dictionaries_old/70service_servicelist_not_managed/result/services/00-base.yml
new file mode 100644
index 000000000..94068b4b7
--- /dev/null
+++ b/tests/dictionaries_old/70service_servicelist_not_managed/result/services/00-base.yml
@@ -0,0 +1,5 @@
+test.service:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.condition == "yes" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_servicelist_not_managed/tiramisu/base.py b/tests/dictionaries_old/70service_servicelist_not_managed/tiramisu/base.py
index c83b5cf72..ee75730b2 100644
--- a/tests/dictionaries_old/70service_servicelist_not_managed/tiramisu/base.py
+++ b/tests/dictionaries_old/70service_servicelist_not_managed/tiramisu/base.py
@@ -1,20 +1,33 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
-option_5 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("yes")})))
-option_6 = BoolOption(name="manage", doc="manage", default=False)
-option_4 = OptionDescription(name="test", doc="test", children=[option_5, option_6])
-option_3 = OptionDescription(name="services", doc="services", children=[option_4], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_3])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
+option_5 = BoolOption(name="activate", doc="activate", default=False)
+option_6 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_4 = OptionDescription(name="test_service", doc="test_service", children=[option_5, option_6])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/70service_servicelist_not_managed/tiramisu/multi.py b/tests/dictionaries_old/70service_servicelist_not_managed/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_servicelist_not_managed/tiramisu/multi.py
rename to tests/dictionaries_old/70service_servicelist_not_managed/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_servicelist_not_managed/xml/00-base.xml b/tests/dictionaries_old/70service_servicelist_not_managed/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_servicelist_not_managed/xml/00-base.xml
rename to tests/dictionaries_old/70service_servicelist_not_managed/xml/00-base.xml
diff --git a/tests/dictionaries/70service_servicelist_not_managed/yml/00-base.yml b/tests/dictionaries_old/70service_servicelist_not_managed/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_servicelist_not_managed/yml/00-base.yml
rename to tests/dictionaries_old/70service_servicelist_not_managed/yml/00-base.yml
diff --git a/tests/dictionaries/70container_newwithip/__init__.py b/tests/dictionaries_old/70service_target/__init__.py
similarity index 100%
rename from tests/dictionaries/70container_newwithip/__init__.py
rename to tests/dictionaries_old/70service_target/__init__.py
diff --git a/tests/dictionaries/70service_engine/makedict/after.json b/tests/dictionaries_old/70service_target/makedict/after.json
similarity index 100%
rename from tests/dictionaries/70service_engine/makedict/after.json
rename to tests/dictionaries_old/70service_target/makedict/after.json
diff --git a/tests/dictionaries/70service_engine/makedict/base.json b/tests/dictionaries_old/70service_target/makedict/base.json
similarity index 100%
rename from tests/dictionaries/70service_engine/makedict/base.json
rename to tests/dictionaries_old/70service_target/makedict/base.json
diff --git a/tests/dictionaries/70service_engine/makedict/before.json b/tests/dictionaries_old/70service_target/makedict/before.json
similarity index 100%
rename from tests/dictionaries/70service_engine/makedict/before.json
rename to tests/dictionaries_old/70service_target/makedict/before.json
diff --git a/tests/dictionaries/70service_target/no_base b/tests/dictionaries_old/70service_target/no_base
similarity index 100%
rename from tests/dictionaries/70service_target/no_base
rename to tests/dictionaries_old/70service_target/no_base
diff --git a/tests/dictionaries_old/70service_target/result/rougail/00-base.yml b/tests/dictionaries_old/70service_target/result/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries_old/70service_target/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_target/result/services/00-base.yml b/tests/dictionaries_old/70service_target/result/services/00-base.yml
new file mode 100644
index 000000000..7802be823
--- /dev/null
+++ b/tests/dictionaries_old/70service_target/result/services/00-base.yml
@@ -0,0 +1,2 @@
+testsrv.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_target/tiramisu/base.py b/tests/dictionaries_old/70service_target/tiramisu/base.py
new file mode 100644
index 000000000..3bb44a9ee
--- /dev/null
+++ b/tests/dictionaries_old/70service_target/tiramisu/base.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="testsrv_service", doc="testsrv_service", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70service_target/tiramisu/multi.py b/tests/dictionaries_old/70service_target/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_target/tiramisu/multi.py
rename to tests/dictionaries_old/70service_target/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_target/xml/00-base.xml b/tests/dictionaries_old/70service_target/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_target/xml/00-base.xml
rename to tests/dictionaries_old/70service_target/xml/00-base.xml
diff --git a/tests/dictionaries/70service_target/yml/00-base.yml b/tests/dictionaries_old/70service_target/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_target/yml/00-base.yml
rename to tests/dictionaries_old/70service_target/yml/00-base.yml
diff --git a/tests/dictionaries/70container_save/__init__.py b/tests/dictionaries_old/70service_target_engine/__init__.py
similarity index 100%
rename from tests/dictionaries/70container_save/__init__.py
rename to tests/dictionaries_old/70service_target_engine/__init__.py
diff --git a/tests/dictionaries/70service_target/makedict/after.json b/tests/dictionaries_old/70service_target_engine/makedict/after.json
similarity index 100%
rename from tests/dictionaries/70service_target/makedict/after.json
rename to tests/dictionaries_old/70service_target_engine/makedict/after.json
diff --git a/tests/dictionaries/70service_target/makedict/base.json b/tests/dictionaries_old/70service_target_engine/makedict/base.json
similarity index 100%
rename from tests/dictionaries/70service_target/makedict/base.json
rename to tests/dictionaries_old/70service_target_engine/makedict/base.json
diff --git a/tests/dictionaries/70service_target/makedict/before.json b/tests/dictionaries_old/70service_target_engine/makedict/before.json
similarity index 100%
rename from tests/dictionaries/70service_target/makedict/before.json
rename to tests/dictionaries_old/70service_target_engine/makedict/before.json
diff --git a/tests/dictionaries/70service_target_engine/no_base b/tests/dictionaries_old/70service_target_engine/no_base
similarity index 100%
rename from tests/dictionaries/70service_target_engine/no_base
rename to tests/dictionaries_old/70service_target_engine/no_base
diff --git a/tests/dictionaries_old/70service_target_engine/result/rougail/00-base.yml b/tests/dictionaries_old/70service_target_engine/result/rougail/00-base.yml
new file mode 100644
index 000000000..c3e916c03
--- /dev/null
+++ b/tests/dictionaries_old/70service_target_engine/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+general:
+ description: général
+ mode_conteneur_actif:
+ type: string
+ description: No change
+ hidden: true
+ default: oui
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_target_engine/result/services/00-base.yml b/tests/dictionaries_old/70service_target_engine/result/services/00-base.yml
new file mode 100644
index 000000000..7802be823
--- /dev/null
+++ b/tests/dictionaries_old/70service_target_engine/result/services/00-base.yml
@@ -0,0 +1,2 @@
+testsrv.service: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_target_engine/tiramisu/base.py b/tests/dictionaries_old/70service_target_engine/tiramisu/base.py
new file mode 100644
index 000000000..3bb44a9ee
--- /dev/null
+++ b/tests/dictionaries_old/70service_target_engine/tiramisu/base.py
@@ -0,0 +1,34 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
+option_6 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="testsrv_service", doc="testsrv_service", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70service_target_engine/tiramisu/multi.py b/tests/dictionaries_old/70service_target_engine/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_target_engine/tiramisu/multi.py
rename to tests/dictionaries_old/70service_target_engine/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_target_engine/result/systemd/system/testsrv.service b/tests/dictionaries_old/70service_target_engine/tmpl/testsrv.service
similarity index 100%
rename from tests/dictionaries/70service_target_engine/result/systemd/system/testsrv.service
rename to tests/dictionaries_old/70service_target_engine/tmpl/testsrv.service
diff --git a/tests/dictionaries/70service_target_engine/xml/00-base.xml b/tests/dictionaries_old/70service_target_engine/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_target_engine/xml/00-base.xml
rename to tests/dictionaries_old/70service_target_engine/xml/00-base.xml
diff --git a/tests/dictionaries/70service_target_engine/yml/00-base.yml b/tests/dictionaries_old/70service_target_engine/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_target_engine/yml/00-base.yml
rename to tests/dictionaries_old/70service_target_engine/yml/00-base.yml
diff --git a/tests/dictionaries/70service_base/__init__.py b/tests/dictionaries_old/70service_timer/__init__.py
similarity index 100%
rename from tests/dictionaries/70service_base/__init__.py
rename to tests/dictionaries_old/70service_timer/__init__.py
diff --git a/tests/dictionaries/70service_timer/makedict/after.json b/tests/dictionaries_old/70service_timer/makedict/after.json
similarity index 100%
rename from tests/dictionaries/70service_timer/makedict/after.json
rename to tests/dictionaries_old/70service_timer/makedict/after.json
diff --git a/tests/dictionaries/70service_timer/makedict/base.json b/tests/dictionaries_old/70service_timer/makedict/base.json
similarity index 100%
rename from tests/dictionaries/70service_timer/makedict/base.json
rename to tests/dictionaries_old/70service_timer/makedict/base.json
diff --git a/tests/dictionaries/70service_timer/makedict/before.json b/tests/dictionaries_old/70service_timer/makedict/before.json
similarity index 100%
rename from tests/dictionaries/70service_timer/makedict/before.json
rename to tests/dictionaries_old/70service_timer/makedict/before.json
diff --git a/tests/dictionaries/70service_timer/no_base b/tests/dictionaries_old/70service_timer/no_base
similarity index 100%
rename from tests/dictionaries/70service_timer/no_base
rename to tests/dictionaries_old/70service_timer/no_base
diff --git a/tests/dictionaries_old/70service_timer/result/services/00-base.yml b/tests/dictionaries_old/70service_timer/result/services/00-base.yml
new file mode 100644
index 000000000..84e14c13e
--- /dev/null
+++ b/tests/dictionaries_old/70service_timer/result/services/00-base.yml
@@ -0,0 +1,3 @@
+testsrv.service: {}
+testsrv.timer: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70service_timer/tiramisu/base.py b/tests/dictionaries_old/70service_timer/tiramisu/base.py
new file mode 100644
index 000000000..02aeb4963
--- /dev/null
+++ b/tests/dictionaries_old/70service_timer/tiramisu/base.py
@@ -0,0 +1,35 @@
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
+try:
+ from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
+except:
+ from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_3 = BoolOption(name="activate", doc="activate", default=True)
+option_4 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_2 = OptionDescription(name="testsrv_service", doc="testsrv_service", children=[option_3, option_4])
+optiondescription_2.impl_set_information('type', "service")
+option_6 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = BoolOption(name="manage", doc="manage", default=True)
+optiondescription_5 = OptionDescription(name="testsrv_timer", doc="testsrv_timer", children=[option_6, option_7])
+optiondescription_5.impl_set_information('type', "timer")
+optiondescription_1 = OptionDescription(name="services", doc="services", children=[optiondescription_2, optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
diff --git a/tests/dictionaries/70service_timer/tiramisu/multi.py b/tests/dictionaries_old/70service_timer/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70service_timer/tiramisu/multi.py
rename to tests/dictionaries_old/70service_timer/tiramisu/multi.py
diff --git a/tests/dictionaries/70service_timer/result/systemd/system/testsrv.service b/tests/dictionaries_old/70service_timer/tmpl/testsrv.service
similarity index 100%
rename from tests/dictionaries/70service_timer/result/systemd/system/testsrv.service
rename to tests/dictionaries_old/70service_timer/tmpl/testsrv.service
diff --git a/tests/dictionaries/70service_timer/result/systemd/system/testsrv.timer b/tests/dictionaries_old/70service_timer/tmpl/testsrv.timer
similarity index 100%
rename from tests/dictionaries/70service_timer/result/systemd/system/testsrv.timer
rename to tests/dictionaries_old/70service_timer/tmpl/testsrv.timer
diff --git a/tests/dictionaries/70service_timer/xml/00-base.xml b/tests/dictionaries_old/70service_timer/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70service_timer/xml/00-base.xml
rename to tests/dictionaries_old/70service_timer/xml/00-base.xml
diff --git a/tests/dictionaries/70service_timer/yml/00-base.yml b/tests/dictionaries_old/70service_timer/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70service_timer/yml/00-base.yml
rename to tests/dictionaries_old/70service_timer/yml/00-base.yml
diff --git a/tests/dictionaries_old/70services_ip/00-base.xml b/tests/dictionaries_old/70services_ip/00-base.xml
deleted file mode 100644
index 69c6c09f0..000000000
--- a/tests/dictionaries_old/70services_ip/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
- 192.168.0.1
-
-
-
diff --git a/tests/dictionaries_old/70services_ip/makedict/after.json b/tests/dictionaries_old/70services_ip/makedict/after.json
index 7090ae971..26fc6478f 100644
--- a/tests/dictionaries_old/70services_ip/makedict/after.json
+++ b/tests/dictionaries_old/70services_ip/makedict/after.json
@@ -3,19 +3,19 @@
"owner": "default",
"value": "192.168.0.1"
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.1"
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70services_ip/makedict/base.json b/tests/dictionaries_old/70services_ip/makedict/base.json
index d333bde1e..e04c43527 100644
--- a/tests/dictionaries_old/70services_ip/makedict/base.json
+++ b/tests/dictionaries_old/70services_ip/makedict/base.json
@@ -1,7 +1,7 @@
{
"rougail.nut_monitor_host": "192.168.0.1",
- "services.nut.ip.nut_monitor_host.name": "192.168.0.1",
- "services.nut.ip.nut_monitor_host.activate": true,
- "services.nut.activate": true,
- "services.nut.manage": true
+ "services.nut_service.ip.nut_monitor_host.name": "192.168.0.1",
+ "services.nut_service.ip.nut_monitor_host.activate": true,
+ "services.nut_service.activate": true,
+ "services.nut_service.manage": true
}
diff --git a/tests/dictionaries_old/70services_ip/makedict/before.json b/tests/dictionaries_old/70services_ip/makedict/before.json
index 7090ae971..26fc6478f 100644
--- a/tests/dictionaries_old/70services_ip/makedict/before.json
+++ b/tests/dictionaries_old/70services_ip/makedict/before.json
@@ -3,19 +3,19 @@
"owner": "default",
"value": "192.168.0.1"
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.1"
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/70services_ip/no_base b/tests/dictionaries_old/70services_ip/no_base
similarity index 100%
rename from tests/dictionaries/70services_ip/no_base
rename to tests/dictionaries_old/70services_ip/no_base
diff --git a/tests/dictionaries_old/70services_ip/result/rougail/00-base.yml b/tests/dictionaries_old/70services_ip/result/rougail/00-base.yml
new file mode 100644
index 000000000..3db77153f
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip/result/rougail/00-base.yml
@@ -0,0 +1,5 @@
+nut_monitor_host:
+ type: ip
+ mandatory: true
+ default: 192.168.0.1
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip/result/services/00-base.yml b/tests/dictionaries_old/70services_ip/result/services/00-base.yml
new file mode 100644
index 000000000..8637277cc
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip/result/services/00-base.yml
@@ -0,0 +1,4 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries_old/70services_ip/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index e4f6d8f05..000000000
--- a/tests/dictionaries_old/70services_ip/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.1
-IPAddressDeny=any
diff --git a/tests/dictionaries_old/70services_ip/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70services_ip/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/70services_ip/tiramisu/base.py b/tests/dictionaries_old/70services_ip/tiramisu/base.py
index 33f66ca4a..324638405 100644
--- a/tests/dictionaries_old/70services_ip/tiramisu/base.py
+++ b/tests/dictionaries_old/70services_ip/tiramisu/base.py
@@ -1,24 +1,37 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.1", allow_reserved=True, properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
option_7 = SymLinkOption(name="name", opt=option_2)
option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_6 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_7, option_8])
-option_5 = OptionDescription(name="ip", doc="ip", children=[option_6])
+optiondescription_6 = OptionDescription(name="rougail_nut_monitor_host", doc="rougail_nut_monitor_host", children=[option_7, option_8])
+optiondescription_5 = OptionDescription(name="ip", doc="ip", children=[optiondescription_6])
option_9 = BoolOption(name="activate", doc="activate", default=True)
option_10 = BoolOption(name="manage", doc="manage", default=True)
-option_4 = OptionDescription(name="nut", doc="nut", children=[option_5, option_9, option_10])
-option_3 = OptionDescription(name="services", doc="services", children=[option_4], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_3])
+optiondescription_4 = OptionDescription(name="nut_service", doc="nut_service", children=[optiondescription_5, option_9, option_10])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/70services_ip/tiramisu/multi.py b/tests/dictionaries_old/70services_ip/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70services_ip/tiramisu/multi.py
rename to tests/dictionaries_old/70services_ip/tiramisu/multi.py
diff --git a/tests/dictionaries/70services_ip/xml/00-base.xml b/tests/dictionaries_old/70services_ip/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70services_ip/xml/00-base.xml
rename to tests/dictionaries_old/70services_ip/xml/00-base.xml
diff --git a/tests/dictionaries/70services_ip/yml/00-base.yml b/tests/dictionaries_old/70services_ip/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70services_ip/yml/00-base.yml
rename to tests/dictionaries_old/70services_ip/yml/00-base.yml
diff --git a/tests/dictionaries_old/70services_ip_cidr/00-base.xml b/tests/dictionaries_old/70services_ip_cidr/00-base.xml
deleted file mode 100644
index 05fe70124..000000000
--- a/tests/dictionaries_old/70services_ip_cidr/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
- 192.168.0.0/24
-
-
-
diff --git a/tests/dictionaries_old/70services_ip_cidr/makedict/after.json b/tests/dictionaries_old/70services_ip_cidr/makedict/after.json
index f9eedc89b..61c4af03d 100644
--- a/tests/dictionaries_old/70services_ip_cidr/makedict/after.json
+++ b/tests/dictionaries_old/70services_ip_cidr/makedict/after.json
@@ -3,19 +3,19 @@
"owner": "default",
"value": "192.168.0.0/24"
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.0/24"
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70services_ip_cidr/makedict/base.json b/tests/dictionaries_old/70services_ip_cidr/makedict/base.json
index 9097e24cc..f097a8d45 100644
--- a/tests/dictionaries_old/70services_ip_cidr/makedict/base.json
+++ b/tests/dictionaries_old/70services_ip_cidr/makedict/base.json
@@ -1,7 +1,7 @@
{
"rougail.nut_monitor_host": "192.168.0.0/24",
- "services.nut.ip.nut_monitor_host.name": "192.168.0.0/24",
- "services.nut.ip.nut_monitor_host.activate": true,
- "services.nut.activate": true,
- "services.nut.manage": true
+ "services.nut_service.ip.nut_monitor_host.name": "192.168.0.0/24",
+ "services.nut_service.ip.nut_monitor_host.activate": true,
+ "services.nut_service.activate": true,
+ "services.nut_service.manage": true
}
diff --git a/tests/dictionaries_old/70services_ip_cidr/makedict/before.json b/tests/dictionaries_old/70services_ip_cidr/makedict/before.json
index f9eedc89b..61c4af03d 100644
--- a/tests/dictionaries_old/70services_ip_cidr/makedict/before.json
+++ b/tests/dictionaries_old/70services_ip_cidr/makedict/before.json
@@ -3,19 +3,19 @@
"owner": "default",
"value": "192.168.0.0/24"
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.0/24"
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/70services_ip_cidr/no_base b/tests/dictionaries_old/70services_ip_cidr/no_base
similarity index 100%
rename from tests/dictionaries/70services_ip_cidr/no_base
rename to tests/dictionaries_old/70services_ip_cidr/no_base
diff --git a/tests/dictionaries_old/70services_ip_cidr/result/rougail/00-base.yml b/tests/dictionaries_old/70services_ip_cidr/result/rougail/00-base.yml
new file mode 100644
index 000000000..d749be420
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_cidr/result/rougail/00-base.yml
@@ -0,0 +1,5 @@
+nut_monitor_host:
+ type: network_cidr
+ mandatory: true
+ default: 192.168.0.0/24
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_cidr/result/services/00-base.yml b/tests/dictionaries_old/70services_ip_cidr/result/services/00-base.yml
new file mode 100644
index 000000000..8637277cc
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_cidr/result/services/00-base.yml
@@ -0,0 +1,4 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_cidr/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries_old/70services_ip_cidr/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index e1cb437d6..000000000
--- a/tests/dictionaries_old/70services_ip_cidr/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.0/24
-IPAddressDeny=any
diff --git a/tests/dictionaries_old/70services_ip_cidr/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70services_ip_cidr/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/70services_ip_cidr/tiramisu/base.py b/tests/dictionaries_old/70services_ip_cidr/tiramisu/base.py
index 6c7bd9c8f..cd6143c07 100644
--- a/tests/dictionaries_old/70services_ip_cidr/tiramisu/base.py
+++ b/tests/dictionaries_old/70services_ip_cidr/tiramisu/base.py
@@ -1,24 +1,37 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.0/24", cidr=True, properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
option_7 = SymLinkOption(name="name", opt=option_2)
option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_6 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_7, option_8])
-option_5 = OptionDescription(name="ip", doc="ip", children=[option_6])
+optiondescription_6 = OptionDescription(name="rougail_nut_monitor_host", doc="rougail_nut_monitor_host", children=[option_7, option_8])
+optiondescription_5 = OptionDescription(name="ip", doc="ip", children=[optiondescription_6])
option_9 = BoolOption(name="activate", doc="activate", default=True)
option_10 = BoolOption(name="manage", doc="manage", default=True)
-option_4 = OptionDescription(name="nut", doc="nut", children=[option_5, option_9, option_10])
-option_3 = OptionDescription(name="services", doc="services", children=[option_4], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_3])
+optiondescription_4 = OptionDescription(name="nut_service", doc="nut_service", children=[optiondescription_5, option_9, option_10])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/70services_ip_cidr/tiramisu/multi.py b/tests/dictionaries_old/70services_ip_cidr/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70services_ip_cidr/tiramisu/multi.py
rename to tests/dictionaries_old/70services_ip_cidr/tiramisu/multi.py
diff --git a/tests/dictionaries/70services_ip_cidr/xml/00-base.xml b/tests/dictionaries_old/70services_ip_cidr/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70services_ip_cidr/xml/00-base.xml
rename to tests/dictionaries_old/70services_ip_cidr/xml/00-base.xml
diff --git a/tests/dictionaries/70services_ip_cidr/yml/00-base.yml b/tests/dictionaries_old/70services_ip_cidr/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70services_ip_cidr/yml/00-base.yml
rename to tests/dictionaries_old/70services_ip_cidr/yml/00-base.yml
diff --git a/tests/dictionaries_old/70services_ip_disabled/00-base.xml b/tests/dictionaries_old/70services_ip_disabled/00-base.xml
deleted file mode 100644
index 5e39f5f0f..000000000
--- a/tests/dictionaries_old/70services_ip_disabled/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
- 192.168.0.1
-
-
-
diff --git a/tests/dictionaries_old/70services_ip_disabled/makedict/after.json b/tests/dictionaries_old/70services_ip_disabled/makedict/after.json
index f74a308dd..b6f6db5b7 100644
--- a/tests/dictionaries_old/70services_ip_disabled/makedict/after.json
+++ b/tests/dictionaries_old/70services_ip_disabled/makedict/after.json
@@ -1,13 +1,13 @@
{
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70services_ip_disabled/makedict/base.json b/tests/dictionaries_old/70services_ip_disabled/makedict/base.json
index 552126f52..66baf2e0f 100644
--- a/tests/dictionaries_old/70services_ip_disabled/makedict/base.json
+++ b/tests/dictionaries_old/70services_ip_disabled/makedict/base.json
@@ -1,5 +1,5 @@
{
- "services.nut.ip.nut_monitor_host.activate": true,
- "services.nut.activate": true,
- "services.nut.manage": true
+ "services.nut_service.ip.nut_monitor_host.activate": true,
+ "services.nut_service.activate": true,
+ "services.nut_service.manage": true
}
diff --git a/tests/dictionaries_old/70services_ip_disabled/makedict/before.json b/tests/dictionaries_old/70services_ip_disabled/makedict/before.json
index f74a308dd..b6f6db5b7 100644
--- a/tests/dictionaries_old/70services_ip_disabled/makedict/before.json
+++ b/tests/dictionaries_old/70services_ip_disabled/makedict/before.json
@@ -1,13 +1,13 @@
{
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/70services_ip_disabled/no_base b/tests/dictionaries_old/70services_ip_disabled/no_base
similarity index 100%
rename from tests/dictionaries/70services_ip_disabled/no_base
rename to tests/dictionaries_old/70services_ip_disabled/no_base
diff --git a/tests/dictionaries_old/70services_ip_disabled/result/rougail/00-base.yml b/tests/dictionaries_old/70services_ip_disabled/result/rougail/00-base.yml
new file mode 100644
index 000000000..9d469a447
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_disabled/result/rougail/00-base.yml
@@ -0,0 +1,6 @@
+nut_monitor_host:
+ type: ip
+ mandatory: true
+ disabled: true
+ default: 192.168.0.1
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_disabled/result/services/00-base.yml b/tests/dictionaries_old/70services_ip_disabled/result/services/00-base.yml
new file mode 100644
index 000000000..8637277cc
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_disabled/result/services/00-base.yml
@@ -0,0 +1,4 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_disabled/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries_old/70services_ip_disabled/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index 9c0580a98..000000000
--- a/tests/dictionaries_old/70services_ip_disabled/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-[Service]
-IPAddressDeny=any
diff --git a/tests/dictionaries_old/70services_ip_disabled/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70services_ip_disabled/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/70services_ip_disabled/tiramisu/base.py b/tests/dictionaries_old/70services_ip_disabled/tiramisu/base.py
index ab652fb24..ce09133b4 100644
--- a/tests/dictionaries_old/70services_ip_disabled/tiramisu/base.py
+++ b/tests/dictionaries_old/70services_ip_disabled/tiramisu/base.py
@@ -1,24 +1,37 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.1", allow_reserved=True, properties=frozenset({"disabled", "mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
option_7 = SymLinkOption(name="name", opt=option_2)
option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_6 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_7, option_8])
-option_5 = OptionDescription(name="ip", doc="ip", children=[option_6])
+optiondescription_6 = OptionDescription(name="rougail_nut_monitor_host", doc="rougail_nut_monitor_host", children=[option_7, option_8])
+optiondescription_5 = OptionDescription(name="ip", doc="ip", children=[optiondescription_6])
option_9 = BoolOption(name="activate", doc="activate", default=True)
option_10 = BoolOption(name="manage", doc="manage", default=True)
-option_4 = OptionDescription(name="nut", doc="nut", children=[option_5, option_9, option_10])
-option_3 = OptionDescription(name="services", doc="services", children=[option_4], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_3])
+optiondescription_4 = OptionDescription(name="nut_service", doc="nut_service", children=[optiondescription_5, option_9, option_10])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/70services_ip_disabled/tiramisu/multi.py b/tests/dictionaries_old/70services_ip_disabled/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70services_ip_disabled/tiramisu/multi.py
rename to tests/dictionaries_old/70services_ip_disabled/tiramisu/multi.py
diff --git a/tests/dictionaries/70services_ip_disabled/xml/00-base.xml b/tests/dictionaries_old/70services_ip_disabled/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70services_ip_disabled/xml/00-base.xml
rename to tests/dictionaries_old/70services_ip_disabled/xml/00-base.xml
diff --git a/tests/dictionaries/70services_ip_disabled/yml/00-base.yml b/tests/dictionaries_old/70services_ip_disabled/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70services_ip_disabled/yml/00-base.yml
rename to tests/dictionaries_old/70services_ip_disabled/yml/00-base.yml
diff --git a/tests/dictionaries_old/70services_ip_iplist/00-base.xml b/tests/dictionaries_old/70services_ip_iplist/00-base.xml
deleted file mode 100644
index d3c5f4bc3..000000000
--- a/tests/dictionaries_old/70services_ip_iplist/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
- no
-
-
- 192.168.0.0/24
-
-
-
-
- yes
- example
- nut_monitor_host
-
-
-
diff --git a/tests/dictionaries_old/70services_ip_iplist/makedict/after.json b/tests/dictionaries_old/70services_ip_iplist/makedict/after.json
index e182cf468..3cecac4ff 100644
--- a/tests/dictionaries_old/70services_ip_iplist/makedict/after.json
+++ b/tests/dictionaries_old/70services_ip_iplist/makedict/after.json
@@ -7,19 +7,19 @@
"owner": "default",
"value": "192.168.0.0/24"
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.0/24"
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70services_ip_iplist/makedict/base.json b/tests/dictionaries_old/70services_ip_iplist/makedict/base.json
index 8c62d10b0..aa2bd28ea 100644
--- a/tests/dictionaries_old/70services_ip_iplist/makedict/base.json
+++ b/tests/dictionaries_old/70services_ip_iplist/makedict/base.json
@@ -1,8 +1,8 @@
{
"rougail.condition": "no",
"rougail.nut_monitor_host": "192.168.0.0/24",
- "services.nut.ip.nut_monitor_host.name": "192.168.0.0/24",
- "services.nut.ip.nut_monitor_host.activate": true,
- "services.nut.activate": true,
- "services.nut.manage": true
+ "services.nut_service.ip.nut_monitor_host.name": "192.168.0.0/24",
+ "services.nut_service.ip.nut_monitor_host.activate": true,
+ "services.nut_service.activate": true,
+ "services.nut_service.manage": true
}
diff --git a/tests/dictionaries_old/70services_ip_iplist/makedict/before.json b/tests/dictionaries_old/70services_ip_iplist/makedict/before.json
index e182cf468..3cecac4ff 100644
--- a/tests/dictionaries_old/70services_ip_iplist/makedict/before.json
+++ b/tests/dictionaries_old/70services_ip_iplist/makedict/before.json
@@ -7,19 +7,19 @@
"owner": "default",
"value": "192.168.0.0/24"
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.0/24"
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/70services_ip_extra/no_base b/tests/dictionaries_old/70services_ip_iplist/no_base
similarity index 100%
rename from tests/dictionaries/70services_ip_extra/no_base
rename to tests/dictionaries_old/70services_ip_iplist/no_base
diff --git a/tests/dictionaries_old/70services_ip_iplist/result/rougail/00-base.yml b/tests/dictionaries_old/70services_ip_iplist/result/rougail/00-base.yml
new file mode 100644
index 000000000..42176e0d7
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_iplist/result/rougail/00-base.yml
@@ -0,0 +1,10 @@
+condition:
+ default: 'no'
+nut_monitor_host:
+ type: network_cidr
+ mandatory: true
+ default: 192.168.0.0/24
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.condition == "yes" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_iplist/result/services/00-base.yml b/tests/dictionaries_old/70services_ip_iplist/result/services/00-base.yml
new file mode 100644
index 000000000..303073d6d
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_iplist/result/services/00-base.yml
@@ -0,0 +1,7 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.condition == "yes" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_iplist/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries_old/70services_ip_iplist/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index e1cb437d6..000000000
--- a/tests/dictionaries_old/70services_ip_iplist/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.0/24
-IPAddressDeny=any
diff --git a/tests/dictionaries_old/70services_ip_iplist/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70services_ip_iplist/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/70services_ip_iplist/tiramisu/base.py b/tests/dictionaries_old/70services_ip_iplist/tiramisu/base.py
index d01ad1497..e8999983f 100644
--- a/tests/dictionaries_old/70services_ip_iplist/tiramisu/base.py
+++ b/tests/dictionaries_old/70services_ip_iplist/tiramisu/base.py
@@ -1,25 +1,38 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "normal"}))
-option_3 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.0/24", cidr=True, properties=frozenset({"mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_2, todict=True, notraisepropertyerror=True), 'expected': ParamValue("yes")}))}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
+option_3 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.0/24", cidr=True, properties=frozenset({"mandatory", "normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
option_8 = SymLinkOption(name="name", opt=option_3)
-option_9 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("yes")})))
-option_7 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_8, option_9])
-option_6 = OptionDescription(name="ip", doc="ip", children=[option_7])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="rougail_nut_monitor_host", doc="rougail_nut_monitor_host", children=[option_8, option_9])
+optiondescription_6 = OptionDescription(name="ip", doc="ip", children=[optiondescription_7])
option_10 = BoolOption(name="activate", doc="activate", default=True)
option_11 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="nut", doc="nut", children=[option_6, option_10, option_11])
-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])
+optiondescription_5 = OptionDescription(name="nut_service", doc="nut_service", children=[optiondescription_6, option_10, option_11])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70services_ip_iplist/tiramisu/multi.py b/tests/dictionaries_old/70services_ip_iplist/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70services_ip_iplist/tiramisu/multi.py
rename to tests/dictionaries_old/70services_ip_iplist/tiramisu/multi.py
diff --git a/tests/dictionaries/70services_ip_iplist/xml/00-base.xml b/tests/dictionaries_old/70services_ip_iplist/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70services_ip_iplist/xml/00-base.xml
rename to tests/dictionaries_old/70services_ip_iplist/xml/00-base.xml
diff --git a/tests/dictionaries/70services_ip_iplist/yml/00-base.yml b/tests/dictionaries_old/70services_ip_iplist/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70services_ip_iplist/yml/00-base.yml
rename to tests/dictionaries_old/70services_ip_iplist/yml/00-base.yml
diff --git a/tests/dictionaries_old/70services_ip_iplist2/00-base.xml b/tests/dictionaries_old/70services_ip_iplist2/00-base.xml
deleted file mode 100644
index b98a78361..000000000
--- a/tests/dictionaries_old/70services_ip_iplist2/00-base.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
- yes
-
-
- 192.168.0.0/24
-
-
-
-
- yes
- example
-
-
-
diff --git a/tests/dictionaries_old/70services_ip_iplist2/makedict/after.json b/tests/dictionaries_old/70services_ip_iplist2/makedict/after.json
index 75059141c..0457a2487 100644
--- a/tests/dictionaries_old/70services_ip_iplist2/makedict/after.json
+++ b/tests/dictionaries_old/70services_ip_iplist2/makedict/after.json
@@ -7,19 +7,19 @@
"owner": "default",
"value": "192.168.0.0/24"
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.0/24"
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": false
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70services_ip_iplist2/makedict/base.json b/tests/dictionaries_old/70services_ip_iplist2/makedict/base.json
index 8c1cc4a73..f65181923 100644
--- a/tests/dictionaries_old/70services_ip_iplist2/makedict/base.json
+++ b/tests/dictionaries_old/70services_ip_iplist2/makedict/base.json
@@ -1,8 +1,8 @@
{
"rougail.condition": "yes",
"rougail.nut_monitor_host": "192.168.0.0/24",
- "services.nut.ip.nut_monitor_host.name": "192.168.0.0/24",
- "services.nut.ip.nut_monitor_host.activate": false,
- "services.nut.activate": true,
- "services.nut.manage": true
+ "services.nut_service.ip.nut_monitor_host.name": "192.168.0.0/24",
+ "services.nut_service.ip.nut_monitor_host.activate": false,
+ "services.nut_service.activate": true,
+ "services.nut_service.manage": true
}
diff --git a/tests/dictionaries_old/70services_ip_iplist2/makedict/before.json b/tests/dictionaries_old/70services_ip_iplist2/makedict/before.json
index 75059141c..0457a2487 100644
--- a/tests/dictionaries_old/70services_ip_iplist2/makedict/before.json
+++ b/tests/dictionaries_old/70services_ip_iplist2/makedict/before.json
@@ -7,19 +7,19 @@
"owner": "default",
"value": "192.168.0.0/24"
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.0/24"
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": false
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70services_ip_iplist2/result/rougail/00-base.yml b/tests/dictionaries_old/70services_ip_iplist2/result/rougail/00-base.yml
new file mode 100644
index 000000000..c6568346c
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_iplist2/result/rougail/00-base.yml
@@ -0,0 +1,7 @@
+condition:
+ default: 'yes'
+nut_monitor_host:
+ type: network_cidr
+ mandatory: true
+ default: 192.168.0.0/24
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_iplist2/result/services/00-base.yml b/tests/dictionaries_old/70services_ip_iplist2/result/services/00-base.yml
new file mode 100644
index 000000000..303073d6d
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_iplist2/result/services/00-base.yml
@@ -0,0 +1,7 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host:
+ disabled:
+ type: jinja
+ jinja: '{% if rougail.condition == "yes" %}true{% else %}false{% endif %}'
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_iplist2/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70services_ip_iplist2/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/70services_ip_iplist2/tiramisu/base.py b/tests/dictionaries_old/70services_ip_iplist2/tiramisu/base.py
index ffe84e0a1..5e8ce77a9 100644
--- a/tests/dictionaries_old/70services_ip_iplist2/tiramisu/base.py
+++ b/tests/dictionaries_old/70services_ip_iplist2/tiramisu/base.py
@@ -1,25 +1,38 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = StrOption(name="condition", doc="condition", default="yes", properties=frozenset({"mandatory", "normal"}))
option_3 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.0/24", cidr=True, properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
option_8 = SymLinkOption(name="name", opt=option_3)
-option_9 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_2, notraisepropertyerror=True), 'expected_0': ParamValue("yes")})))
-option_7 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_8, option_9])
-option_6 = OptionDescription(name="ip", doc="ip", children=[option_7])
+option_9 = BoolOption(name="activate", doc="activate", default=True)
+optiondescription_7 = OptionDescription(name="rougail_nut_monitor_host", doc="rougail_nut_monitor_host", children=[option_8, option_9])
+optiondescription_6 = OptionDescription(name="ip", doc="ip", children=[optiondescription_7])
option_10 = BoolOption(name="activate", doc="activate", default=True)
option_11 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="nut", doc="nut", children=[option_6, option_10, option_11])
-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])
+optiondescription_5 = OptionDescription(name="nut_service", doc="nut_service", children=[optiondescription_6, option_10, option_11])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70services_ip_iplist2/tiramisu/multi.py b/tests/dictionaries_old/70services_ip_iplist2/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70services_ip_iplist2/tiramisu/multi.py
rename to tests/dictionaries_old/70services_ip_iplist2/tiramisu/multi.py
diff --git a/tests/dictionaries/70services_ip_iplist2/xml/00-base.xml b/tests/dictionaries_old/70services_ip_iplist2/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70services_ip_iplist2/xml/00-base.xml
rename to tests/dictionaries_old/70services_ip_iplist2/xml/00-base.xml
diff --git a/tests/dictionaries/70services_ip_iplist2/yml/00-base.yml b/tests/dictionaries_old/70services_ip_iplist2/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70services_ip_iplist2/yml/00-base.yml
rename to tests/dictionaries_old/70services_ip_iplist2/yml/00-base.yml
diff --git a/tests/dictionaries_old/70services_ip_leadership/00-base.xml b/tests/dictionaries_old/70services_ip_leadership/00-base.xml
deleted file mode 100644
index 3e45a5a3e..000000000
--- a/tests/dictionaries_old/70services_ip_leadership/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
-
- 255.255.255.0
-
-
- 192.168.1.0
-
-
-
-
-
- nut_monitor_host
-
-
-
diff --git a/tests/dictionaries_old/70services_ip_leadership/makedict/after.json b/tests/dictionaries_old/70services_ip_leadership/makedict/after.json
index 5a0141a76..60c801feb 100644
--- a/tests/dictionaries_old/70services_ip_leadership/makedict/after.json
+++ b/tests/dictionaries_old/70services_ip_leadership/makedict/after.json
@@ -13,29 +13,27 @@
"192.168.1.0"
]
},
- "services.ntp.ip.nut_monitor_host.name": {
- "owner": [
- "default"
- ],
+ "services.ntp_service.ip.nut_monitor_host.name": {
+ "owner": "default",
"value": [
"192.168.1.0"
]
},
- "services.ntp.ip.nut_monitor_host.netmask": {
+ "services.ntp_service.ip.nut_monitor_host.netmask": {
"owner": "default",
"value": [
"255.255.255.0"
]
},
- "services.ntp.ip.nut_monitor_host.activate": {
+ "services.ntp_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.ntp.activate": {
+ "services.ntp_service.activate": {
"owner": "default",
"value": true
},
- "services.ntp.manage": {
+ "services.ntp_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70services_ip_leadership/makedict/base.json b/tests/dictionaries_old/70services_ip_leadership/makedict/base.json
index af10e88ab..074d42067 100644
--- a/tests/dictionaries_old/70services_ip_leadership/makedict/base.json
+++ b/tests/dictionaries_old/70services_ip_leadership/makedict/base.json
@@ -5,13 +5,13 @@
"rougail.general.nut_monitor_netmask.nut_monitor_host": "192.168.1.0"
}
],
- "services.ntp.ip.nut_monitor_host.name": [
+ "services.ntp_service.ip.nut_monitor_host.name": [
"192.168.1.0"
],
- "services.ntp.ip.nut_monitor_host.netmask": [
+ "services.ntp_service.ip.nut_monitor_host.netmask": [
"255.255.255.0"
],
- "services.ntp.ip.nut_monitor_host.activate": true,
- "services.ntp.activate": true,
- "services.ntp.manage": true
+ "services.ntp_service.ip.nut_monitor_host.activate": true,
+ "services.ntp_service.activate": true,
+ "services.ntp_service.manage": true
}
diff --git a/tests/dictionaries_old/70services_ip_leadership/makedict/before.json b/tests/dictionaries_old/70services_ip_leadership/makedict/before.json
index 5a0141a76..60c801feb 100644
--- a/tests/dictionaries_old/70services_ip_leadership/makedict/before.json
+++ b/tests/dictionaries_old/70services_ip_leadership/makedict/before.json
@@ -13,29 +13,27 @@
"192.168.1.0"
]
},
- "services.ntp.ip.nut_monitor_host.name": {
- "owner": [
- "default"
- ],
+ "services.ntp_service.ip.nut_monitor_host.name": {
+ "owner": "default",
"value": [
"192.168.1.0"
]
},
- "services.ntp.ip.nut_monitor_host.netmask": {
+ "services.ntp_service.ip.nut_monitor_host.netmask": {
"owner": "default",
"value": [
"255.255.255.0"
]
},
- "services.ntp.ip.nut_monitor_host.activate": {
+ "services.ntp_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.ntp.activate": {
+ "services.ntp_service.activate": {
"owner": "default",
"value": true
},
- "services.ntp.manage": {
+ "services.ntp_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/70services_ip_iplist/no_base b/tests/dictionaries_old/70services_ip_leadership/no_base
similarity index 100%
rename from tests/dictionaries/70services_ip_iplist/no_base
rename to tests/dictionaries_old/70services_ip_leadership/no_base
diff --git a/tests/dictionaries_old/70services_ip_leadership/result/rougail/00-base.yml b/tests/dictionaries_old/70services_ip_leadership/result/rougail/00-base.yml
new file mode 100644
index 000000000..c69430246
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_leadership/result/rougail/00-base.yml
@@ -0,0 +1,16 @@
+general:
+ description: général
+ nut_monitor_netmask:
+ description: nut_monitor_netmask
+ type: leadership
+ nut_monitor_netmask:
+ type: netmask
+ mandatory: true
+ multi: true
+ default:
+ - 255.255.255.0
+ nut_monitor_host:
+ type: network
+ mandatory: true
+ default: 192.168.1.0
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_leadership/result/services/00-base.yml b/tests/dictionaries_old/70services_ip_leadership/result/services/00-base.yml
new file mode 100644
index 000000000..618555129
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_leadership/result/services/00-base.yml
@@ -0,0 +1,5 @@
+ntp.service:
+ ip:
+ rougail.general.nut_monitor_netmask.nut_monitor_host:
+ netmask: rougail.general.nut_monitor_netmask.nut_monitor_netmask
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_leadership/result/systemd/system/ntp.service.d/rougail_ip.conf b/tests/dictionaries_old/70services_ip_leadership/result/systemd/system/ntp.service.d/rougail_ip.conf
deleted file mode 100644
index d330de8da..000000000
--- a/tests/dictionaries_old/70services_ip_leadership/result/systemd/system/ntp.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[Service]
-IPAddressAllow=192.168.1.0/24
-IPAddressDeny=any
diff --git a/tests/dictionaries_old/70services_ip_leadership/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70services_ip_leadership/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/70services_ip_leadership/tiramisu/base.py b/tests/dictionaries_old/70services_ip_leadership/tiramisu/base.py
index 2cd805607..cb6a73cc5 100644
--- a/tests/dictionaries_old/70services_ip_leadership/tiramisu/base.py
+++ b/tests/dictionaries_old/70services_ip_leadership/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
-option_4 = NetmaskOption(name="nut_monitor_netmask", doc="nut_monitor_netmask", multi=True, default=['255.255.255.0'], properties=frozenset({"mandatory"}))
-option_5 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", multi=True, default_multi="192.168.1.0", properties=frozenset({"mandatory", "normal"}))
-option_3 = Leadership(name="nut_monitor_netmask", doc="nut_monitor_netmask", children=[option_4, option_5], properties=frozenset({"normal"}))
-option_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
+option_4 = NetmaskOption(name="nut_monitor_netmask", doc="nut_monitor_netmask", multi=True, default=['255.255.255.0'], properties=frozenset({"mandatory", "normal"}))
+option_5 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", multi=True, default="192.168.1.0", properties=frozenset({"mandatory", "normal"}))
+optiondescription_3 = Leadership(name="nut_monitor_netmask", doc="nut_monitor_netmask", children=[option_4, option_5], properties=frozenset({"normal"}))
+optiondescription_2 = OptionDescription(name="general", doc="général", children=[optiondescription_3], properties=frozenset({"normal"}))
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"}))
option_10 = SymLinkOption(name="name", opt=option_5)
option_11 = SymLinkOption(name="netmask", opt=option_4)
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_9 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_10, option_11, option_12])
-option_8 = OptionDescription(name="ip", doc="ip", children=[option_9])
+optiondescription_9 = OptionDescription(name="rougail_general_nut_monitor_netmask_nut_monitor_host", doc="rougail_general_nut_monitor_netmask_nut_monitor_host", children=[option_10, option_11, option_12])
+optiondescription_8 = OptionDescription(name="ip", doc="ip", children=[optiondescription_9])
option_13 = BoolOption(name="activate", doc="activate", default=True)
option_14 = BoolOption(name="manage", doc="manage", default=True)
-option_7 = OptionDescription(name="ntp", doc="ntp", children=[option_8, option_13, option_14])
-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])
+optiondescription_7 = OptionDescription(name="ntp_service", doc="ntp_service", children=[optiondescription_8, option_13, option_14])
+optiondescription_7.impl_set_information('type', "service")
+optiondescription_6 = OptionDescription(name="services", doc="services", children=[optiondescription_7], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6])
diff --git a/tests/dictionaries/70services_ip_leadership/tiramisu/multi.py b/tests/dictionaries_old/70services_ip_leadership/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70services_ip_leadership/tiramisu/multi.py
rename to tests/dictionaries_old/70services_ip_leadership/tiramisu/multi.py
diff --git a/tests/dictionaries/70services_ip_leadership/xml/00-base.xml b/tests/dictionaries_old/70services_ip_leadership/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70services_ip_leadership/xml/00-base.xml
rename to tests/dictionaries_old/70services_ip_leadership/xml/00-base.xml
diff --git a/tests/dictionaries/70services_ip_leadership/yml/00-base.yml b/tests/dictionaries_old/70services_ip_leadership/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70services_ip_leadership/yml/00-base.yml
rename to tests/dictionaries_old/70services_ip_leadership/yml/00-base.yml
diff --git a/tests/dictionaries_old/70services_ip_multi/00-base.xml b/tests/dictionaries_old/70services_ip_multi/00-base.xml
deleted file mode 100644
index 0861344eb..000000000
--- a/tests/dictionaries_old/70services_ip_multi/00-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
- 192.168.0.1
- 192.168.0.2
-
-
-
diff --git a/tests/dictionaries_old/70services_ip_multi/makedict/after.json b/tests/dictionaries_old/70services_ip_multi/makedict/after.json
index c85613741..3d67a556c 100644
--- a/tests/dictionaries_old/70services_ip_multi/makedict/after.json
+++ b/tests/dictionaries_old/70services_ip_multi/makedict/after.json
@@ -6,22 +6,22 @@
"192.168.0.2"
]
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": [
"192.168.0.1",
"192.168.0.2"
]
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70services_ip_multi/makedict/base.json b/tests/dictionaries_old/70services_ip_multi/makedict/base.json
index 9e7241f38..72e97674b 100644
--- a/tests/dictionaries_old/70services_ip_multi/makedict/base.json
+++ b/tests/dictionaries_old/70services_ip_multi/makedict/base.json
@@ -3,11 +3,11 @@
"192.168.0.1",
"192.168.0.2"
],
- "services.nut.ip.nut_monitor_host.name": [
+ "services.nut_service.ip.nut_monitor_host.name": [
"192.168.0.1",
"192.168.0.2"
],
- "services.nut.ip.nut_monitor_host.activate": true,
- "services.nut.activate": true,
- "services.nut.manage": true
+ "services.nut_service.ip.nut_monitor_host.activate": true,
+ "services.nut_service.activate": true,
+ "services.nut_service.manage": true
}
diff --git a/tests/dictionaries_old/70services_ip_multi/makedict/before.json b/tests/dictionaries_old/70services_ip_multi/makedict/before.json
index c85613741..3d67a556c 100644
--- a/tests/dictionaries_old/70services_ip_multi/makedict/before.json
+++ b/tests/dictionaries_old/70services_ip_multi/makedict/before.json
@@ -6,22 +6,22 @@
"192.168.0.2"
]
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": [
"192.168.0.1",
"192.168.0.2"
]
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/70services_ip_leadership/no_base b/tests/dictionaries_old/70services_ip_multi/no_base
similarity index 100%
rename from tests/dictionaries/70services_ip_leadership/no_base
rename to tests/dictionaries_old/70services_ip_multi/no_base
diff --git a/tests/dictionaries_old/70services_ip_multi/result/rougail/00-base.yml b/tests/dictionaries_old/70services_ip_multi/result/rougail/00-base.yml
new file mode 100644
index 000000000..73e7020ab
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_multi/result/rougail/00-base.yml
@@ -0,0 +1,8 @@
+nut_monitor_host:
+ type: ip
+ mandatory: true
+ multi: true
+ default:
+ - 192.168.0.1
+ - 192.168.0.2
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_multi/result/services/00-base.yml b/tests/dictionaries_old/70services_ip_multi/result/services/00-base.yml
new file mode 100644
index 000000000..8637277cc
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_multi/result/services/00-base.yml
@@ -0,0 +1,4 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_multi/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries_old/70services_ip_multi/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index c1dc19684..000000000
--- a/tests/dictionaries_old/70services_ip_multi/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.1
-IPAddressAllow=192.168.0.2
-IPAddressDeny=any
diff --git a/tests/dictionaries_old/70services_ip_multi/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70services_ip_multi/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/70services_ip_multi/tiramisu/base.py b/tests/dictionaries_old/70services_ip_multi/tiramisu/base.py
index a0128d1ce..f5e77fe44 100644
--- a/tests/dictionaries_old/70services_ip_multi/tiramisu/base.py
+++ b/tests/dictionaries_old/70services_ip_multi/tiramisu/base.py
@@ -1,24 +1,37 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", multi=True, default=['192.168.0.1', '192.168.0.2'], default_multi="192.168.0.1", allow_reserved=True, properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
option_7 = SymLinkOption(name="name", opt=option_2)
option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_6 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_7, option_8])
-option_5 = OptionDescription(name="ip", doc="ip", children=[option_6])
+optiondescription_6 = OptionDescription(name="rougail_nut_monitor_host", doc="rougail_nut_monitor_host", children=[option_7, option_8])
+optiondescription_5 = OptionDescription(name="ip", doc="ip", children=[optiondescription_6])
option_9 = BoolOption(name="activate", doc="activate", default=True)
option_10 = BoolOption(name="manage", doc="manage", default=True)
-option_4 = OptionDescription(name="nut", doc="nut", children=[option_5, option_9, option_10])
-option_3 = OptionDescription(name="services", doc="services", children=[option_4], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_3])
+optiondescription_4 = OptionDescription(name="nut_service", doc="nut_service", children=[optiondescription_5, option_9, option_10])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/70services_ip_multi/tiramisu/multi.py b/tests/dictionaries_old/70services_ip_multi/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70services_ip_multi/tiramisu/multi.py
rename to tests/dictionaries_old/70services_ip_multi/tiramisu/multi.py
diff --git a/tests/dictionaries/70services_ip_multi/xml/00-base.xml b/tests/dictionaries_old/70services_ip_multi/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70services_ip_multi/xml/00-base.xml
rename to tests/dictionaries_old/70services_ip_multi/xml/00-base.xml
diff --git a/tests/dictionaries/70services_ip_multi/yml/00-base.yml b/tests/dictionaries_old/70services_ip_multi/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70services_ip_multi/yml/00-base.yml
rename to tests/dictionaries_old/70services_ip_multi/yml/00-base.yml
diff --git a/tests/dictionaries_old/70services_ip_network/00-base.xml b/tests/dictionaries_old/70services_ip_network/00-base.xml
deleted file mode 100644
index b0c23c63b..000000000
--- a/tests/dictionaries_old/70services_ip_network/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
- 255.255.255.0
-
-
- 192.168.0.0
-
-
-
diff --git a/tests/dictionaries_old/70services_ip_network/makedict/after.json b/tests/dictionaries_old/70services_ip_network/makedict/after.json
index 642705269..015fba97a 100644
--- a/tests/dictionaries_old/70services_ip_network/makedict/after.json
+++ b/tests/dictionaries_old/70services_ip_network/makedict/after.json
@@ -7,23 +7,23 @@
"owner": "default",
"value": "192.168.0.0"
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.0"
},
- "services.nut.ip.nut_monitor_host.netmask": {
+ "services.nut_service.ip.nut_monitor_host.netmask": {
"owner": "default",
"value": "255.255.255.0"
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70services_ip_network/makedict/base.json b/tests/dictionaries_old/70services_ip_network/makedict/base.json
index dc76fb003..41a76e45b 100644
--- a/tests/dictionaries_old/70services_ip_network/makedict/base.json
+++ b/tests/dictionaries_old/70services_ip_network/makedict/base.json
@@ -1,9 +1,9 @@
{
"rougail.nut_monitor_netmask": "255.255.255.0",
"rougail.nut_monitor_host": "192.168.0.0",
- "services.nut.ip.nut_monitor_host.name": "192.168.0.0",
- "services.nut.ip.nut_monitor_host.netmask": "255.255.255.0",
- "services.nut.ip.nut_monitor_host.activate": true,
- "services.nut.activate": true,
- "services.nut.manage": true
+ "services.nut_service.ip.nut_monitor_host.name": "192.168.0.0",
+ "services.nut_service.ip.nut_monitor_host.netmask": "255.255.255.0",
+ "services.nut_service.ip.nut_monitor_host.activate": true,
+ "services.nut_service.activate": true,
+ "services.nut_service.manage": true
}
diff --git a/tests/dictionaries_old/70services_ip_network/makedict/before.json b/tests/dictionaries_old/70services_ip_network/makedict/before.json
index 642705269..015fba97a 100644
--- a/tests/dictionaries_old/70services_ip_network/makedict/before.json
+++ b/tests/dictionaries_old/70services_ip_network/makedict/before.json
@@ -7,23 +7,23 @@
"owner": "default",
"value": "192.168.0.0"
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.0"
},
- "services.nut.ip.nut_monitor_host.netmask": {
+ "services.nut_service.ip.nut_monitor_host.netmask": {
"owner": "default",
"value": "255.255.255.0"
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/70services_ip_multi/no_base b/tests/dictionaries_old/70services_ip_network/no_base
similarity index 100%
rename from tests/dictionaries/70services_ip_multi/no_base
rename to tests/dictionaries_old/70services_ip_network/no_base
diff --git a/tests/dictionaries_old/70services_ip_network/result/rougail/00-base.yml b/tests/dictionaries_old/70services_ip_network/result/rougail/00-base.yml
new file mode 100644
index 000000000..0ed51457c
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_network/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+nut_monitor_netmask:
+ type: netmask
+ mandatory: true
+ default: 255.255.255.0
+nut_monitor_host:
+ type: network
+ mandatory: true
+ default: 192.168.0.0
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_network/result/services/00-base.yml b/tests/dictionaries_old/70services_ip_network/result/services/00-base.yml
new file mode 100644
index 000000000..a57e6c9bb
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_network/result/services/00-base.yml
@@ -0,0 +1,5 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host:
+ netmask: rougail.nut_monitor_netmask
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_network/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries_old/70services_ip_network/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index e1cb437d6..000000000
--- a/tests/dictionaries_old/70services_ip_network/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.0/24
-IPAddressDeny=any
diff --git a/tests/dictionaries_old/70services_ip_network/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70services_ip_network/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/70services_ip_network/tiramisu/base.py b/tests/dictionaries_old/70services_ip_network/tiramisu/base.py
index 5eea59741..5bf59adaa 100644
--- a/tests/dictionaries_old/70services_ip_network/tiramisu/base.py
+++ b/tests/dictionaries_old/70services_ip_network/tiramisu/base.py
@@ -1,26 +1,39 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = NetmaskOption(name="nut_monitor_netmask", doc="nut_monitor_netmask", default="255.255.255.0", properties=frozenset({"mandatory", "normal"}))
option_3 = NetworkOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.0", properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
option_8 = SymLinkOption(name="name", opt=option_3)
option_9 = SymLinkOption(name="netmask", opt=option_2)
option_10 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_8, option_9, option_10])
-option_6 = OptionDescription(name="ip", doc="ip", children=[option_7])
+optiondescription_7 = OptionDescription(name="rougail_nut_monitor_host", doc="rougail_nut_monitor_host", children=[option_8, option_9, option_10])
+optiondescription_6 = OptionDescription(name="ip", doc="ip", children=[optiondescription_7])
option_11 = BoolOption(name="activate", doc="activate", default=True)
option_12 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="nut", doc="nut", children=[option_6, option_11, option_12])
-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])
+optiondescription_5 = OptionDescription(name="nut_service", doc="nut_service", children=[optiondescription_6, option_11, option_12])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70services_ip_network/tiramisu/multi.py b/tests/dictionaries_old/70services_ip_network/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70services_ip_network/tiramisu/multi.py
rename to tests/dictionaries_old/70services_ip_network/tiramisu/multi.py
diff --git a/tests/dictionaries/70services_ip_network/xml/00-base.xml b/tests/dictionaries_old/70services_ip_network/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70services_ip_network/xml/00-base.xml
rename to tests/dictionaries_old/70services_ip_network/xml/00-base.xml
diff --git a/tests/dictionaries/70services_ip_network/yml/00-base.yml b/tests/dictionaries_old/70services_ip_network/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70services_ip_network/yml/00-base.yml
rename to tests/dictionaries_old/70services_ip_network/yml/00-base.yml
diff --git a/tests/dictionaries_old/70services_ip_not_mandatory/00-base.xml b/tests/dictionaries_old/70services_ip_not_mandatory/00-base.xml
deleted file mode 100644
index 1fc47a1f4..000000000
--- a/tests/dictionaries_old/70services_ip_not_mandatory/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/70services_ip_not_mandatory/makedict/after.json b/tests/dictionaries_old/70services_ip_not_mandatory/makedict/after.json
index 048ea2428..fceae0beb 100644
--- a/tests/dictionaries_old/70services_ip_not_mandatory/makedict/after.json
+++ b/tests/dictionaries_old/70services_ip_not_mandatory/makedict/after.json
@@ -3,19 +3,19 @@
"owner": "default",
"value": null
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": null
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70services_ip_not_mandatory/makedict/base.json b/tests/dictionaries_old/70services_ip_not_mandatory/makedict/base.json
index d3ad5532e..900a1b0cb 100644
--- a/tests/dictionaries_old/70services_ip_not_mandatory/makedict/base.json
+++ b/tests/dictionaries_old/70services_ip_not_mandatory/makedict/base.json
@@ -1,7 +1,7 @@
{
"rougail.nut_monitor_host": null,
- "services.nut.ip.nut_monitor_host.name": null,
- "services.nut.ip.nut_monitor_host.activate": true,
- "services.nut.activate": true,
- "services.nut.manage": true
+ "services.nut_service.ip.nut_monitor_host.name": null,
+ "services.nut_service.ip.nut_monitor_host.activate": true,
+ "services.nut_service.activate": true,
+ "services.nut_service.manage": true
}
diff --git a/tests/dictionaries_old/70services_ip_not_mandatory/makedict/before.json b/tests/dictionaries_old/70services_ip_not_mandatory/makedict/before.json
index 048ea2428..fceae0beb 100644
--- a/tests/dictionaries_old/70services_ip_not_mandatory/makedict/before.json
+++ b/tests/dictionaries_old/70services_ip_not_mandatory/makedict/before.json
@@ -3,19 +3,19 @@
"owner": "default",
"value": null
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": null
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/70services_ip_network/no_base b/tests/dictionaries_old/70services_ip_not_mandatory/no_base
similarity index 100%
rename from tests/dictionaries/70services_ip_network/no_base
rename to tests/dictionaries_old/70services_ip_not_mandatory/no_base
diff --git a/tests/dictionaries_old/70services_ip_not_mandatory/result/rougail/00-base.yml b/tests/dictionaries_old/70services_ip_not_mandatory/result/rougail/00-base.yml
new file mode 100644
index 000000000..4f2a540ee
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_not_mandatory/result/rougail/00-base.yml
@@ -0,0 +1,3 @@
+nut_monitor_host:
+ type: ip
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_not_mandatory/result/services/00-base.yml b/tests/dictionaries_old/70services_ip_not_mandatory/result/services/00-base.yml
new file mode 100644
index 000000000..8637277cc
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_not_mandatory/result/services/00-base.yml
@@ -0,0 +1,4 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_not_mandatory/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries_old/70services_ip_not_mandatory/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index 9c0580a98..000000000
--- a/tests/dictionaries_old/70services_ip_not_mandatory/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-[Service]
-IPAddressDeny=any
diff --git a/tests/dictionaries_old/70services_ip_not_mandatory/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70services_ip_not_mandatory/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/70services_ip_not_mandatory/tiramisu/base.py b/tests/dictionaries_old/70services_ip_not_mandatory/tiramisu/base.py
index 13aa6b9c2..369c5dc33 100644
--- a/tests/dictionaries_old/70services_ip_not_mandatory/tiramisu/base.py
+++ b/tests/dictionaries_old/70services_ip_not_mandatory/tiramisu/base.py
@@ -1,24 +1,37 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", allow_reserved=True, properties=frozenset({"normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"normal"}))
option_7 = SymLinkOption(name="name", opt=option_2)
option_8 = BoolOption(name="activate", doc="activate", default=True)
-option_6 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_7, option_8])
-option_5 = OptionDescription(name="ip", doc="ip", children=[option_6])
+optiondescription_6 = OptionDescription(name="rougail_nut_monitor_host", doc="rougail_nut_monitor_host", children=[option_7, option_8])
+optiondescription_5 = OptionDescription(name="ip", doc="ip", children=[optiondescription_6])
option_9 = BoolOption(name="activate", doc="activate", default=True)
option_10 = BoolOption(name="manage", doc="manage", default=True)
-option_4 = OptionDescription(name="nut", doc="nut", children=[option_5, option_9, option_10])
-option_3 = OptionDescription(name="services", doc="services", children=[option_4], properties=frozenset({"hidden"}))
-option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_3])
+optiondescription_4 = OptionDescription(name="nut_service", doc="nut_service", children=[optiondescription_5, option_9, option_10])
+optiondescription_4.impl_set_information('type', "service")
+optiondescription_3 = OptionDescription(name="services", doc="services", children=[optiondescription_4], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3])
diff --git a/tests/dictionaries/70services_ip_not_mandatory/tiramisu/multi.py b/tests/dictionaries_old/70services_ip_not_mandatory/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70services_ip_not_mandatory/tiramisu/multi.py
rename to tests/dictionaries_old/70services_ip_not_mandatory/tiramisu/multi.py
diff --git a/tests/dictionaries/70services_ip_not_mandatory/xml/00-base.xml b/tests/dictionaries_old/70services_ip_not_mandatory/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70services_ip_not_mandatory/xml/00-base.xml
rename to tests/dictionaries_old/70services_ip_not_mandatory/xml/00-base.xml
diff --git a/tests/dictionaries/70services_ip_not_mandatory/yml/00-base.yml b/tests/dictionaries_old/70services_ip_not_mandatory/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70services_ip_not_mandatory/yml/00-base.yml
rename to tests/dictionaries_old/70services_ip_not_mandatory/yml/00-base.yml
diff --git a/tests/dictionaries_old/70services_ip_twice/00-base.xml b/tests/dictionaries_old/70services_ip_twice/00-base.xml
deleted file mode 100644
index 94685e2f1..000000000
--- a/tests/dictionaries_old/70services_ip_twice/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- nut_monitor_host
- nut_monitor_host2
-
-
-
-
- 192.168.0.1
-
-
- 192.168.0.2
-
-
-
diff --git a/tests/dictionaries_old/70services_ip_twice/makedict/after.json b/tests/dictionaries_old/70services_ip_twice/makedict/after.json
index 484c66ab6..72a9ac458 100644
--- a/tests/dictionaries_old/70services_ip_twice/makedict/after.json
+++ b/tests/dictionaries_old/70services_ip_twice/makedict/after.json
@@ -7,27 +7,27 @@
"owner": "default",
"value": "192.168.0.2"
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.1"
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.ip.nut_monitor_host2.name": {
+ "services.nut_service.ip.nut_monitor_host2.name": {
"owner": "default",
"value": "192.168.0.2"
},
- "services.nut.ip.nut_monitor_host2.activate": {
+ "services.nut_service.ip.nut_monitor_host2.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries_old/70services_ip_twice/makedict/base.json b/tests/dictionaries_old/70services_ip_twice/makedict/base.json
index 3b6d25516..a0fd5743a 100644
--- a/tests/dictionaries_old/70services_ip_twice/makedict/base.json
+++ b/tests/dictionaries_old/70services_ip_twice/makedict/base.json
@@ -1,10 +1,10 @@
{
"rougail.nut_monitor_host": "192.168.0.1",
"rougail.nut_monitor_host2": "192.168.0.2",
- "services.nut.ip.nut_monitor_host.name": "192.168.0.1",
- "services.nut.ip.nut_monitor_host.activate": true,
- "services.nut.ip.nut_monitor_host2.name": "192.168.0.2",
- "services.nut.ip.nut_monitor_host2.activate": true,
- "services.nut.activate": true,
- "services.nut.manage": true
+ "services.nut_service.ip.nut_monitor_host.name": "192.168.0.1",
+ "services.nut_service.ip.nut_monitor_host.activate": true,
+ "services.nut_service.ip.nut_monitor_host2.name": "192.168.0.2",
+ "services.nut_service.ip.nut_monitor_host2.activate": true,
+ "services.nut_service.activate": true,
+ "services.nut_service.manage": true
}
diff --git a/tests/dictionaries_old/70services_ip_twice/makedict/before.json b/tests/dictionaries_old/70services_ip_twice/makedict/before.json
index 484c66ab6..72a9ac458 100644
--- a/tests/dictionaries_old/70services_ip_twice/makedict/before.json
+++ b/tests/dictionaries_old/70services_ip_twice/makedict/before.json
@@ -7,27 +7,27 @@
"owner": "default",
"value": "192.168.0.2"
},
- "services.nut.ip.nut_monitor_host.name": {
+ "services.nut_service.ip.nut_monitor_host.name": {
"owner": "default",
"value": "192.168.0.1"
},
- "services.nut.ip.nut_monitor_host.activate": {
+ "services.nut_service.ip.nut_monitor_host.activate": {
"owner": "default",
"value": true
},
- "services.nut.ip.nut_monitor_host2.name": {
+ "services.nut_service.ip.nut_monitor_host2.name": {
"owner": "default",
"value": "192.168.0.2"
},
- "services.nut.ip.nut_monitor_host2.activate": {
+ "services.nut_service.ip.nut_monitor_host2.activate": {
"owner": "default",
"value": true
},
- "services.nut.activate": {
+ "services.nut_service.activate": {
"owner": "default",
"value": true
},
- "services.nut.manage": {
+ "services.nut_service.manage": {
"owner": "default",
"value": true
}
diff --git a/tests/dictionaries/70services_ip_not_mandatory/no_base b/tests/dictionaries_old/70services_ip_twice/no_base
similarity index 100%
rename from tests/dictionaries/70services_ip_not_mandatory/no_base
rename to tests/dictionaries_old/70services_ip_twice/no_base
diff --git a/tests/dictionaries_old/70services_ip_twice/result/rougail/00-base.yml b/tests/dictionaries_old/70services_ip_twice/result/rougail/00-base.yml
new file mode 100644
index 000000000..d85876234
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_twice/result/rougail/00-base.yml
@@ -0,0 +1,9 @@
+nut_monitor_host:
+ type: ip
+ mandatory: true
+ default: 192.168.0.1
+nut_monitor_host2:
+ type: ip
+ mandatory: true
+ default: 192.168.0.2
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_twice/result/services/00-base.yml b/tests/dictionaries_old/70services_ip_twice/result/services/00-base.yml
new file mode 100644
index 000000000..b7f1d2021
--- /dev/null
+++ b/tests/dictionaries_old/70services_ip_twice/result/services/00-base.yml
@@ -0,0 +1,5 @@
+nut.service:
+ ip:
+ rougail.nut_monitor_host: {}
+ rougail.nut_monitor_host2: {}
+version: '1.0'
diff --git a/tests/dictionaries_old/70services_ip_twice/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries_old/70services_ip_twice/result/systemd/system/nut.service.d/rougail_ip.conf
deleted file mode 100644
index c1dc19684..000000000
--- a/tests/dictionaries_old/70services_ip_twice/result/systemd/system/nut.service.d/rougail_ip.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[Service]
-IPAddressAllow=192.168.0.1
-IPAddressAllow=192.168.0.2
-IPAddressDeny=any
diff --git a/tests/dictionaries_old/70services_ip_twice/result/tmpfiles.d/rougail.conf b/tests/dictionaries_old/70services_ip_twice/result/tmpfiles.d/rougail.conf
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/70services_ip_twice/tiramisu/base.py b/tests/dictionaries_old/70services_ip_twice/tiramisu/base.py
index c49b11205..a0656a567 100644
--- a/tests/dictionaries_old/70services_ip_twice/tiramisu/base.py
+++ b/tests/dictionaries_old/70services_ip_twice/tiramisu/base.py
@@ -1,28 +1,41 @@
-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)
+from importlib.machinery import SourceFileLoader as _SourceFileLoader
+from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
+class func:
+ pass
+
+def _load_functions(path):
+ global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
+ loader = _SourceFileLoader('func', path)
+ spec = _spec_from_loader(loader.name, loader)
+ func_ = _module_from_spec(spec)
+ loader.exec_module(func_)
+ for function in dir(func_):
+ if function.startswith('_'):
+ continue
+ setattr(func, function, getattr(func_, function))
+_load_functions('tests/dictionaries_old/../eosfunc/test.py')
try:
from tiramisu4 import *
+ from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES
except:
from tiramisu import *
+ from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
+ALLOWED_LEADER_PROPERTIES.add("basic")
+ALLOWED_LEADER_PROPERTIES.add("normal")
+ALLOWED_LEADER_PROPERTIES.add("expert")
option_2 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.1", allow_reserved=True, properties=frozenset({"mandatory", "normal"}))
option_3 = IPOption(name="nut_monitor_host2", doc="nut_monitor_host2", default="192.168.0.2", allow_reserved=True, properties=frozenset({"mandatory", "normal"}))
-option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
+optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"normal"}))
option_8 = SymLinkOption(name="name", opt=option_2)
option_9 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_8, option_9])
+optiondescription_7 = OptionDescription(name="rougail_nut_monitor_host", doc="rougail_nut_monitor_host", children=[option_8, option_9])
option_11 = SymLinkOption(name="name", opt=option_3)
option_12 = BoolOption(name="activate", doc="activate", default=True)
-option_10 = OptionDescription(name="nut_monitor_host2", doc="nut_monitor_host2", children=[option_11, option_12])
-option_6 = OptionDescription(name="ip", doc="ip", children=[option_7, option_10])
+optiondescription_10 = OptionDescription(name="rougail_nut_monitor_host2", doc="rougail_nut_monitor_host2", children=[option_11, option_12])
+optiondescription_6 = OptionDescription(name="ip", doc="ip", children=[optiondescription_7, optiondescription_10])
option_13 = BoolOption(name="activate", doc="activate", default=True)
option_14 = BoolOption(name="manage", doc="manage", default=True)
-option_5 = OptionDescription(name="nut", doc="nut", children=[option_6, option_13, option_14])
-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])
+optiondescription_5 = OptionDescription(name="nut_service", doc="nut_service", children=[optiondescription_6, option_13, option_14])
+optiondescription_5.impl_set_information('type', "service")
+optiondescription_4 = OptionDescription(name="services", doc="services", children=[optiondescription_5], properties=frozenset({"hidden", "normal"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4])
diff --git a/tests/dictionaries/70services_ip_twice/tiramisu/multi.py b/tests/dictionaries_old/70services_ip_twice/tiramisu/multi.py
similarity index 100%
rename from tests/dictionaries/70services_ip_twice/tiramisu/multi.py
rename to tests/dictionaries_old/70services_ip_twice/tiramisu/multi.py
diff --git a/tests/dictionaries/70services_ip_twice/xml/00-base.xml b/tests/dictionaries_old/70services_ip_twice/xml/00-base.xml
similarity index 100%
rename from tests/dictionaries/70services_ip_twice/xml/00-base.xml
rename to tests/dictionaries_old/70services_ip_twice/xml/00-base.xml
diff --git a/tests/dictionaries/70services_ip_twice/yml/00-base.yml b/tests/dictionaries_old/70services_ip_twice/yml/00-base.yml
similarity index 100%
rename from tests/dictionaries/70services_ip_twice/yml/00-base.yml
rename to tests/dictionaries_old/70services_ip_twice/yml/00-base.yml
diff --git a/tests/dictionaries_old/80auto_family/00-base.xml b/tests/dictionaries_old/80auto_family/00-base.xml
deleted file mode 100644
index d0783207a..000000000
--- a/tests/dictionaries_old/80auto_family/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- no
-
-
-
-
-
- oui
- general
-
-
-
diff --git a/tests/dictionaries_old/80auto_family/__init__.py b/tests/dictionaries_old/80auto_family/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80auto_family/errno_8 b/tests/dictionaries_old/80auto_family/errno_8
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80check_unknown/00-base.xml b/tests/dictionaries_old/80check_unknown/00-base.xml
deleted file mode 100644
index 6dec73cf3..000000000
--- a/tests/dictionaries_old/80check_unknown/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- b
-
-
-
-
-
-
- 0
- 100
- int
-
-
-
diff --git a/tests/dictionaries_old/80check_unknown/__init__.py b/tests/dictionaries_old/80check_unknown/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80check_unknown/errno_1 b/tests/dictionaries_old/80check_unknown/errno_1
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80check_unknown_var/00-base.xml b/tests/dictionaries_old/80check_unknown_var/00-base.xml
deleted file mode 100644
index 3f55a4894..000000000
--- a/tests/dictionaries_old/80check_unknown_var/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- b
-
-
-
-
-
- int3
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80check_unknown_var/__init__.py b/tests/dictionaries_old/80check_unknown_var/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80check_unknown_var/errno_42 b/tests/dictionaries_old/80check_unknown_var/errno_42
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80check_without_target/00-base.xml b/tests/dictionaries_old/80check_without_target/00-base.xml
deleted file mode 100644
index 26737bf76..000000000
--- a/tests/dictionaries_old/80check_without_target/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- b
-
-
-
-
-
-
- 0
- 100
-
-
-
diff --git a/tests/dictionaries_old/80check_without_target/__init__.py b/tests/dictionaries_old/80check_without_target/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80check_without_target/errno_9 b/tests/dictionaries_old/80check_without_target/errno_9
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80condition_itself/00-base.xml b/tests/dictionaries_old/80condition_itself/00-base.xml
deleted file mode 100644
index 63ca1d570..000000000
--- a/tests/dictionaries_old/80condition_itself/00-base.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
- leader-leader
- replicationType
-
-
-
diff --git a/tests/dictionaries_old/80condition_itself/__init__.py b/tests/dictionaries_old/80condition_itself/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80condition_itself/errno_11 b/tests/dictionaries_old/80condition_itself/errno_11
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80condition_not_exists_error/00-base.xml b/tests/dictionaries_old/80condition_not_exists_error/00-base.xml
deleted file mode 100644
index 16c72b8c0..000000000
--- a/tests/dictionaries_old/80condition_not_exists_error/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
- oui
- notexists
-
-
-
diff --git a/tests/dictionaries_old/80condition_not_exists_error/__init__.py b/tests/dictionaries_old/80condition_not_exists_error/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80condition_not_exists_error/errno_12 b/tests/dictionaries_old/80condition_not_exists_error/errno_12
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80condition_not_exists_error_var/00-base.xml b/tests/dictionaries_old/80condition_not_exists_error_var/00-base.xml
deleted file mode 100644
index 1062bfdd4..000000000
--- a/tests/dictionaries_old/80condition_not_exists_error_var/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
- oui
- notexists
-
-
-
diff --git a/tests/dictionaries_old/80condition_not_exists_error_var/__init__.py b/tests/dictionaries_old/80condition_not_exists_error_var/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80condition_not_exists_error_var/errno_12 b/tests/dictionaries_old/80condition_not_exists_error_var/errno_12
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80condition_without_target/00-base.xml b/tests/dictionaries_old/80condition_without_target/00-base.xml
deleted file mode 100644
index e8f86ab8d..000000000
--- a/tests/dictionaries_old/80condition_without_target/00-base.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- oui
-
-
-
diff --git a/tests/dictionaries_old/80condition_without_target/__init__.py b/tests/dictionaries_old/80condition_without_target/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80condition_without_target/errno_9 b/tests/dictionaries_old/80condition_without_target/errno_9
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80container_files_symlink_without_source/00-base.xml b/tests/dictionaries_old/80container_files_symlink_without_source/00-base.xml
deleted file mode 100644
index bffa2f11d..000000000
--- a/tests/dictionaries_old/80container_files_symlink_without_source/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
- file_name
-
-
-
-
-
- oui
-
-
- /etc/mailname
-
-
-
-
diff --git a/tests/dictionaries_old/80container_files_symlink_without_source/__init__.py b/tests/dictionaries_old/80container_files_symlink_without_source/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80container_files_symlink_without_source/errno_34 b/tests/dictionaries_old/80container_files_symlink_without_source/errno_34
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80container_filesredefine_error/00-base.xml b/tests/dictionaries_old/80container_filesredefine_error/00-base.xml
deleted file mode 100644
index 7a9c4c735..000000000
--- a/tests/dictionaries_old/80container_filesredefine_error/00-base.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- /etc/mailname
-
-
-
-
-
- oui
-
-
-
-
diff --git a/tests/dictionaries_old/80container_filesredefine_error/01-base.xml b/tests/dictionaries_old/80container_filesredefine_error/01-base.xml
deleted file mode 100644
index 439c85099..000000000
--- a/tests/dictionaries_old/80container_filesredefine_error/01-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- /etc/mailname
-
-
-
diff --git a/tests/dictionaries_old/80container_filesredefine_error/__init__.py b/tests/dictionaries_old/80container_filesredefine_error/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80container_filesredefine_error/errno_45 b/tests/dictionaries_old/80container_filesredefine_error/errno_45
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80empty_param_number/00_base.xml b/tests/dictionaries_old/80empty_param_number/00_base.xml
deleted file mode 100644
index 94e1bed4e..000000000
--- a/tests/dictionaries_old/80empty_param_number/00_base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
- 3127
-
-
-
-
-
-
- toto1
-
-
-
diff --git a/tests/dictionaries_old/80empty_param_number/__init__.py b/tests/dictionaries_old/80empty_param_number/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80empty_param_number/errno_27 b/tests/dictionaries_old/80empty_param_number/errno_27
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80empty_typeeole_eole/00_base.xml b/tests/dictionaries_old/80empty_typeeole_eole/00_base.xml
deleted file mode 100644
index af5b8f67c..000000000
--- a/tests/dictionaries_old/80empty_typeeole_eole/00_base.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
- 3127
-
-
-
-
-
- non
-
- 3128
- toto2
- toto1
-
-
-
diff --git a/tests/dictionaries_old/80empty_typeeole_eole/__init__.py b/tests/dictionaries_old/80empty_typeeole_eole/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80empty_typeeole_eole/errno_27 b/tests/dictionaries_old/80empty_typeeole_eole/errno_27
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80empty_typeeole_number/00_base.xml b/tests/dictionaries_old/80empty_typeeole_number/00_base.xml
deleted file mode 100644
index 66f4a2246..000000000
--- a/tests/dictionaries_old/80empty_typeeole_number/00_base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
- 3127
-
-
-
-
- non
-
- 3128
- toto2
- toto1
-
-
-
diff --git a/tests/dictionaries_old/80empty_typeeole_number/__init__.py b/tests/dictionaries_old/80empty_typeeole_number/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80empty_typeeole_number/errno_27 b/tests/dictionaries_old/80empty_typeeole_number/errno_27
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80extra_externalspaceauto/00-base.xml b/tests/dictionaries_old/80extra_externalspaceauto/00-base.xml
deleted file mode 100644
index 172b74634..000000000
--- a/tests/dictionaries_old/80extra_externalspaceauto/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80extra_externalspaceauto/__init__.py b/tests/dictionaries_old/80extra_externalspaceauto/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80extra_externalspaceauto/errno_41 b/tests/dictionaries_old/80extra_externalspaceauto/errno_41
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80extra_externalspaceauto/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/80extra_externalspaceauto/extra_dirs/extra/00-base.xml
deleted file mode 100644
index e5eb20f02..000000000
--- a/tests/dictionaries_old/80extra_externalspaceauto/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Exportation de la base de ejabberd
-
-
-
- pre
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80extra_externalspaceauto/extra_dirs/extra1/00-base.xml b/tests/dictionaries_old/80extra_externalspaceauto/extra_dirs/extra1/00-base.xml
deleted file mode 100644
index 3fe35d767..000000000
--- a/tests/dictionaries_old/80extra_externalspaceauto/extra_dirs/extra1/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- test
-
-
-
-
-
- non
- extra.ejabberd.day
- none
- daily
- extra1.external.description
-
-
-
diff --git a/tests/dictionaries_old/80extra_externalspacecondition2/00-base.xml b/tests/dictionaries_old/80extra_externalspacecondition2/00-base.xml
deleted file mode 100644
index 172b74634..000000000
--- a/tests/dictionaries_old/80extra_externalspacecondition2/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80extra_externalspacecondition2/__init__.py b/tests/dictionaries_old/80extra_externalspacecondition2/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80extra_externalspacecondition2/errno_38 b/tests/dictionaries_old/80extra_externalspacecondition2/errno_38
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80extra_externalspacecondition2/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/80extra_externalspacecondition2/extra_dirs/extra/00-base.xml
deleted file mode 100644
index e5eb20f02..000000000
--- a/tests/dictionaries_old/80extra_externalspacecondition2/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Exportation de la base de ejabberd
-
-
-
- pre
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80extra_externalspacecondition2/extra_dirs/extra1/00-base.xml b/tests/dictionaries_old/80extra_externalspacecondition2/extra_dirs/extra1/00-base.xml
deleted file mode 100644
index e51651d33..000000000
--- a/tests/dictionaries_old/80extra_externalspacecondition2/extra_dirs/extra1/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- test
-
-
-
-
-
- non
- extra.ejabberd
-
-
-
diff --git a/tests/dictionaries_old/80extra_externalspacecondition3/00-base.xml b/tests/dictionaries_old/80extra_externalspacecondition3/00-base.xml
deleted file mode 100644
index 172b74634..000000000
--- a/tests/dictionaries_old/80extra_externalspacecondition3/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80extra_externalspacecondition3/__init__.py b/tests/dictionaries_old/80extra_externalspacecondition3/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80extra_externalspacecondition3/errno_38 b/tests/dictionaries_old/80extra_externalspacecondition3/errno_38
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80extra_externalspacecondition3/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/80extra_externalspacecondition3/extra_dirs/extra/00-base.xml
deleted file mode 100644
index a8fe29c8c..000000000
--- a/tests/dictionaries_old/80extra_externalspacecondition3/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- test
-
-
-
-
-
- non
- general
-
-
-
diff --git a/tests/dictionaries_old/80extra_rougail/00-base.xml b/tests/dictionaries_old/80extra_rougail/00-base.xml
deleted file mode 100644
index 88bab8ca4..000000000
--- a/tests/dictionaries_old/80extra_rougail/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80extra_rougail/__init__.py b/tests/dictionaries_old/80extra_rougail/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80extra_rougail/errno_21 b/tests/dictionaries_old/80extra_rougail/errno_21
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80extra_rougail/extra_dirs/rougail/00-base.xml b/tests/dictionaries_old/80extra_rougail/extra_dirs/rougail/00-base.xml
deleted file mode 100644
index c93971917..000000000
--- a/tests/dictionaries_old/80extra_rougail/extra_dirs/rougail/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- Exportation de la base de ejabberd
-
-
-
- pre
-
-
-
-
-
- non
- activer_ejabberd
- none
- daily
- extra.ejabberd.day
-
-
-
diff --git a/tests/dictionaries_old/80extra_services/00-base.xml b/tests/dictionaries_old/80extra_services/00-base.xml
deleted file mode 100644
index 88bab8ca4..000000000
--- a/tests/dictionaries_old/80extra_services/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80extra_services/__init__.py b/tests/dictionaries_old/80extra_services/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80extra_services/errno_21 b/tests/dictionaries_old/80extra_services/errno_21
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80extra_services/extra_dirs/services/00-base.xml b/tests/dictionaries_old/80extra_services/extra_dirs/services/00-base.xml
deleted file mode 100644
index a11e423b2..000000000
--- a/tests/dictionaries_old/80extra_services/extra_dirs/services/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- Exportation de la base de ejabberd
-
-
-
- pre
-
-
-
-
-
- non
- activer_ejabberd
- none
- daily
- extra.ejabberd.day
-
-
-
diff --git a/tests/dictionaries_old/80family_appendaccent/00-base.xml b/tests/dictionaries_old/80family_appendaccent/00-base.xml
deleted file mode 100644
index 4d4f6bda7..000000000
--- a/tests/dictionaries_old/80family_appendaccent/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- non
-
-
-
-
-
- non
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80family_appendaccent/01-base.xml b/tests/dictionaries_old/80family_appendaccent/01-base.xml
deleted file mode 100644
index 470481fb5..000000000
--- a/tests/dictionaries_old/80family_appendaccent/01-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80family_appendaccent/02-base.xml b/tests/dictionaries_old/80family_appendaccent/02-base.xml
deleted file mode 100644
index a5fa78a92..000000000
--- a/tests/dictionaries_old/80family_appendaccent/02-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80family_appendaccent/__init__.py b/tests/dictionaries_old/80family_appendaccent/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_appendaccent/errno_76 b/tests/dictionaries_old/80family_appendaccent/errno_76
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_change/00-base.xml b/tests/dictionaries_old/80family_change/00-base.xml
deleted file mode 100644
index b98127645..000000000
--- a/tests/dictionaries_old/80family_change/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80family_change/01-base.xml b/tests/dictionaries_old/80family_change/01-base.xml
deleted file mode 100644
index 362cc6b4a..000000000
--- a/tests/dictionaries_old/80family_change/01-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80family_change/__init__.py b/tests/dictionaries_old/80family_change/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_change/errno_47 b/tests/dictionaries_old/80family_change/errno_47
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_dynamic_calc_invalid_suffix/00-base.xml b/tests/dictionaries_old/80family_dynamic_calc_invalid_suffix/00-base.xml
deleted file mode 100644
index 776efdf40..000000000
--- a/tests/dictionaries_old/80family_dynamic_calc_invalid_suffix/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- val1
- val2
-
-
-
-
- val
-
-
-
-
-
-
-
-
- unknown
- vardyn
-
-
-
diff --git a/tests/dictionaries_old/80family_dynamic_calc_invalid_suffix/__init__.py b/tests/dictionaries_old/80family_dynamic_calc_invalid_suffix/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_dynamic_calc_invalid_suffix/errno_28 b/tests/dictionaries_old/80family_dynamic_calc_invalid_suffix/errno_28
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_dynamic_check/00-base.xml b/tests/dictionaries_old/80family_dynamic_check/00-base.xml
deleted file mode 100644
index d27806e94..000000000
--- a/tests/dictionaries_old/80family_dynamic_check/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- val1
- val2
-
-
-
-
-
-
-
-
- 0
- 100
- vardynval1
-
-
-
diff --git a/tests/dictionaries_old/80family_dynamic_check/__init__.py b/tests/dictionaries_old/80family_dynamic_check/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_dynamic_check/errno_35 b/tests/dictionaries_old/80family_dynamic_check/errno_35
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_dynamic_not_multi/00-base.xml b/tests/dictionaries_old/80family_dynamic_not_multi/00-base.xml
deleted file mode 100644
index 2c2f7f2e7..000000000
--- a/tests/dictionaries_old/80family_dynamic_not_multi/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- val1
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80family_dynamic_not_multi/__init__.py b/tests/dictionaries_old/80family_dynamic_not_multi/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_dynamic_not_multi/errno_16 b/tests/dictionaries_old/80family_dynamic_not_multi/errno_16
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_dynamic_with_family/00-base.xml b/tests/dictionaries_old/80family_dynamic_with_family/00-base.xml
deleted file mode 100644
index bd2842d62..000000000
--- a/tests/dictionaries_old/80family_dynamic_with_family/00-base.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- val1
- val2
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80family_dynamic_with_family/__init__.py b/tests/dictionaries_old/80family_dynamic_with_family/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_dynamic_with_family/errno_22 b/tests/dictionaries_old/80family_dynamic_with_family/errno_22
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_not_dynamic_calc_suffix/00-base.xml b/tests/dictionaries_old/80family_not_dynamic_calc_suffix/00-base.xml
deleted file mode 100644
index 25cc4f33d..000000000
--- a/tests/dictionaries_old/80family_not_dynamic_calc_suffix/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- val1
- val2
-
-
-
-
- val
-
-
-
-
-
-
-
-
-
- newvar
-
-
-
diff --git a/tests/dictionaries_old/80family_not_dynamic_calc_suffix/__init__.py b/tests/dictionaries_old/80family_not_dynamic_calc_suffix/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_not_dynamic_calc_suffix/errno_53 b/tests/dictionaries_old/80family_not_dynamic_calc_suffix/errno_53
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_only_on_suffix/00-base.xml b/tests/dictionaries_old/80family_only_on_suffix/00-base.xml
deleted file mode 100644
index 7c16afaba..000000000
--- a/tests/dictionaries_old/80family_only_on_suffix/00-base.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
- val1
- val2
-
-
-
-
-
-
-
-
- value
- vardynval1
-
-
-
diff --git a/tests/dictionaries_old/80family_only_on_suffix/__init__.py b/tests/dictionaries_old/80family_only_on_suffix/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_only_on_suffix/errno_35 b/tests/dictionaries_old/80family_only_on_suffix/errno_35
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_several/00-base.xml b/tests/dictionaries_old/80family_several/00-base.xml
deleted file mode 100644
index f2d390cdb..000000000
--- a/tests/dictionaries_old/80family_several/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/80family_several/__init__.py b/tests/dictionaries_old/80family_several/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_several/errno_44 b/tests/dictionaries_old/80family_several/errno_44
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_unique/00-base.xml b/tests/dictionaries_old/80family_unique/00-base.xml
deleted file mode 100644
index 6c84ee8b3..000000000
--- a/tests/dictionaries_old/80family_unique/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80family_unique/__init__.py b/tests/dictionaries_old/80family_unique/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_unique/errno_55 b/tests/dictionaries_old/80family_unique/errno_55
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_variable_not_same_name/00-base.xml b/tests/dictionaries_old/80family_variable_not_same_name/00-base.xml
deleted file mode 100644
index 1e3b51350..000000000
--- a/tests/dictionaries_old/80family_variable_not_same_name/00-base.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80family_variable_not_same_name/__init__.py b/tests/dictionaries_old/80family_variable_not_same_name/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80family_variable_not_same_name/errno_57 b/tests/dictionaries_old/80family_variable_not_same_name/errno_57
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80familyaction_accent/00-base.xml b/tests/dictionaries_old/80familyaction_accent/00-base.xml
deleted file mode 100644
index af8b3e8b7..000000000
--- a/tests/dictionaries_old/80familyaction_accent/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80familyaction_accent/__init__.py b/tests/dictionaries_old/80familyaction_accent/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80familyaction_accent/errno_76 b/tests/dictionaries_old/80familyaction_accent/errno_76
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80familyaction_accent/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/80familyaction_accent/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 9fcc64782..000000000
--- a/tests/dictionaries_old/80familyaction_accent/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- 0
-
-
-
-
diff --git a/tests/dictionaries_old/80file_wrong_type/00-base.xml b/tests/dictionaries_old/80file_wrong_type/00-base.xml
deleted file mode 100644
index 951c7b558..000000000
--- a/tests/dictionaries_old/80file_wrong_type/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- file_name
-
-
-
-
- /etc/mailname
-
-
-
diff --git a/tests/dictionaries_old/80file_wrong_type/__init__.py b/tests/dictionaries_old/80file_wrong_type/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80file_wrong_type/errno_58 b/tests/dictionaries_old/80file_wrong_type/errno_58
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80fill_baseaccent/00-base.xml b/tests/dictionaries_old/80fill_baseaccent/00-base.xml
deleted file mode 100644
index c7e307fb6..000000000
--- a/tests/dictionaries_old/80fill_baseaccent/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80fill_baseaccent/__init__.py b/tests/dictionaries_old/80fill_baseaccent/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80fill_baseaccent/errno_76 b/tests/dictionaries_old/80fill_baseaccent/errno_76
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80fill_error/00-base.xml b/tests/dictionaries_old/80fill_error/00-base.xml
deleted file mode 100644
index 211dd395f..000000000
--- a/tests/dictionaries_old/80fill_error/00-base.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
- valeur
- mode_conteneur_actif
-
-
- valeur2
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80fill_error/__init__.py b/tests/dictionaries_old/80fill_error/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80fill_error/errno_24 b/tests/dictionaries_old/80fill_error/errno_24
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80fill_multi/00-base.xml b/tests/dictionaries_old/80fill_multi/00-base.xml
deleted file mode 100644
index 64dc527aa..000000000
--- a/tests/dictionaries_old/80fill_multi/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
-
- value
- mode_conteneur_actif
-
-
- mode_conteneur_actif1
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80fill_multi/__init__.py b/tests/dictionaries_old/80fill_multi/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80fill_multi/errno_24 b/tests/dictionaries_old/80fill_multi/errno_24
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80fill_not_exists/00-base.xml b/tests/dictionaries_old/80fill_not_exists/00-base.xml
deleted file mode 100644
index fdbb69388..000000000
--- a/tests/dictionaries_old/80fill_not_exists/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
-
-
-
- mode_conteneur_actif4
- mode_conteneur_actif1
- mode_conteneur_actif3
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80fill_not_exists/__init__.py b/tests/dictionaries_old/80fill_not_exists/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80fill_not_exists/errno_42 b/tests/dictionaries_old/80fill_not_exists/errno_42
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80fill_unknown_function/00-base.xml b/tests/dictionaries_old/80fill_unknown_function/00-base.xml
deleted file mode 100644
index be0452e30..000000000
--- a/tests/dictionaries_old/80fill_unknown_function/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
-
- mode_conteneur_actif1
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80fill_unknown_function/__init__.py b/tests/dictionaries_old/80fill_unknown_function/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80fill_unknown_function/errno_25 b/tests/dictionaries_old/80fill_unknown_function/errno_25
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80frozenifin_unknown/00-base.xml b/tests/dictionaries_old/80frozenifin_unknown/00-base.xml
deleted file mode 100644
index c0ffcee98..000000000
--- a/tests/dictionaries_old/80frozenifin_unknown/00-base.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
- 1
- 2
- 3
- enumvar
-
-
- 4
- test_variable
-
-
-
diff --git a/tests/dictionaries_old/80frozenifin_unknown/__init__.py b/tests/dictionaries_old/80frozenifin_unknown/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80frozenifin_unknown/errno_23 b/tests/dictionaries_old/80frozenifin_unknown/errno_23
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80hidden_if_in_dynamic/00-base.xml b/tests/dictionaries_old/80hidden_if_in_dynamic/00-base.xml
deleted file mode 100644
index dd21c18bf..000000000
--- a/tests/dictionaries_old/80hidden_if_in_dynamic/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- val1
- val2
-
-
-
-
- val
-
-
-
-
-
-
-
-
- non
- new
-
-
-
diff --git a/tests/dictionaries_old/80hidden_if_in_dynamic/__init__.py b/tests/dictionaries_old/80hidden_if_in_dynamic/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80hidden_if_in_dynamic/errno_20 b/tests/dictionaries_old/80hidden_if_in_dynamic/errno_20
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80hidden_if_in_filelist/00-base.xml b/tests/dictionaries_old/80hidden_if_in_filelist/00-base.xml
deleted file mode 100644
index c7bd8f789..000000000
--- a/tests/dictionaries_old/80hidden_if_in_filelist/00-base.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- /tmp/file1
-
-
-
-
-
- non
-
-
- non
-
-
-
-
-
- non
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/80hidden_if_in_filelist/__init__.py b/tests/dictionaries_old/80hidden_if_in_filelist/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80hidden_if_in_filelist/errno_10 b/tests/dictionaries_old/80hidden_if_in_filelist/errno_10
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80invalid_dtd/00_base.xml b/tests/dictionaries_old/80invalid_dtd/00_base.xml
deleted file mode 100644
index 9ffb9deec..000000000
--- a/tests/dictionaries_old/80invalid_dtd/00_base.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80invalid_dtd/__init__.py b/tests/dictionaries_old/80invalid_dtd/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80invalid_dtd/errno_43 b/tests/dictionaries_old/80invalid_dtd/errno_43
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80invalid_xml/00_base.xml b/tests/dictionaries_old/80invalid_xml/00_base.xml
deleted file mode 100644
index 129e01fa6..000000000
--- a/tests/dictionaries_old/80invalid_xml/00_base.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/tests/dictionaries_old/80invalid_xml/__init__.py b/tests/dictionaries_old/80invalid_xml/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80invalid_xml/errno_52 b/tests/dictionaries_old/80invalid_xml/errno_52
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80leadership_accent/00-base.xml b/tests/dictionaries_old/80leadership_accent/00-base.xml
deleted file mode 100644
index c529e7c09..000000000
--- a/tests/dictionaries_old/80leadership_accent/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- Followér1
- follower2
-
-
- Followér1
- Followér2
-
-
-
diff --git a/tests/dictionaries_old/80leadership_accent/__init__.py b/tests/dictionaries_old/80leadership_accent/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80leadership_accent/errno_76 b/tests/dictionaries_old/80leadership_accent/errno_76
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80leadership_accent_leader/00-base.xml b/tests/dictionaries_old/80leadership_accent_leader/00-base.xml
deleted file mode 100644
index 6f2d7f4c0..000000000
--- a/tests/dictionaries_old/80leadership_accent_leader/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/80leadership_accent_leader/__init__.py b/tests/dictionaries_old/80leadership_accent_leader/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80leadership_accent_leader/errno_76 b/tests/dictionaries_old/80leadership_accent_leader/errno_76
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80leadership_auto_save/00-base.xml b/tests/dictionaries_old/80leadership_auto_save/00-base.xml
deleted file mode 100644
index ac6ebb0be..000000000
--- a/tests/dictionaries_old/80leadership_auto_save/00-base.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/80leadership_auto_save/__init__.py b/tests/dictionaries_old/80leadership_auto_save/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80leadership_auto_save/errno_29 b/tests/dictionaries_old/80leadership_auto_save/errno_29
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80leadership_autofreeze/00-base.xml b/tests/dictionaries_old/80leadership_autofreeze/00-base.xml
deleted file mode 100644
index c56dc7adf..000000000
--- a/tests/dictionaries_old/80leadership_autofreeze/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/80leadership_autofreeze/__init__.py b/tests/dictionaries_old/80leadership_autofreeze/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80leadership_autofreeze/errno_30 b/tests/dictionaries_old/80leadership_autofreeze/errno_30
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80leadership_familyaccent/00-base.xml b/tests/dictionaries_old/80leadership_familyaccent/00-base.xml
deleted file mode 100644
index 59563c889..000000000
--- a/tests/dictionaries_old/80leadership_familyaccent/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
- valfill
- follower1
-
-
- follower1
- follower2
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/80leadership_familyaccent/__init__.py b/tests/dictionaries_old/80leadership_familyaccent/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80leadership_familyaccent/errno_76 b/tests/dictionaries_old/80leadership_familyaccent/errno_76
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80leadership_leader_not_multi/00-base.xml b/tests/dictionaries_old/80leadership_leader_not_multi/00-base.xml
deleted file mode 100644
index c666b05dc..000000000
--- a/tests/dictionaries_old/80leadership_leader_not_multi/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/80leadership_leader_not_multi/__init__.py b/tests/dictionaries_old/80leadership_leader_not_multi/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80leadership_leader_not_multi/errno_32 b/tests/dictionaries_old/80leadership_leader_not_multi/errno_32
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80load_disabled_if_inaccent_family/00-base.xml b/tests/dictionaries_old/80load_disabled_if_inaccent_family/00-base.xml
deleted file mode 100644
index 80b22b7d2..000000000
--- a/tests/dictionaries_old/80load_disabled_if_inaccent_family/00-base.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
- non
-
-
-
-
-
- oui
- mode_conteneur_actif
- mode_conteneur_actif2
- Général2
-
-
-
diff --git a/tests/dictionaries_old/80load_disabled_if_inaccent_family/__init__.py b/tests/dictionaries_old/80load_disabled_if_inaccent_family/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80load_disabled_if_inaccent_family/errno_76 b/tests/dictionaries_old/80load_disabled_if_inaccent_family/errno_76
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80load_leadership_normalize_family/00-base.xml b/tests/dictionaries_old/80load_leadership_normalize_family/00-base.xml
deleted file mode 100644
index bfd56a01b..000000000
--- a/tests/dictionaries_old/80load_leadership_normalize_family/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/80load_leadership_normalize_family/01-base.xml b/tests/dictionaries_old/80load_leadership_normalize_family/01-base.xml
deleted file mode 100644
index 568a8bc31..000000000
--- a/tests/dictionaries_old/80load_leadership_normalize_family/01-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80load_leadership_normalize_family/__init__.py b/tests/dictionaries_old/80load_leadership_normalize_family/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80load_leadership_normalize_family/errno_76 b/tests/dictionaries_old/80load_leadership_normalize_family/errno_76
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80load_mandatoryifin_family/00-base.xml b/tests/dictionaries_old/80load_mandatoryifin_family/00-base.xml
deleted file mode 100644
index f0098ec19..000000000
--- a/tests/dictionaries_old/80load_mandatoryifin_family/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- oui
- general2
-
-
-
diff --git a/tests/dictionaries_old/80load_mandatoryifin_family/__init__.py b/tests/dictionaries_old/80load_mandatoryifin_family/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80load_mandatoryifin_family/errno_51 b/tests/dictionaries_old/80load_mandatoryifin_family/errno_51
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80mode_conflict/00-base.xml b/tests/dictionaries_old/80mode_conflict/00-base.xml
deleted file mode 100644
index be7c99e03..000000000
--- a/tests/dictionaries_old/80mode_conflict/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80mode_conflict/__init__.py b/tests/dictionaries_old/80mode_conflict/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80mode_conflict/errno_62 b/tests/dictionaries_old/80mode_conflict/errno_62
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80mode_leadership_conflict/00-base.xml b/tests/dictionaries_old/80mode_leadership_conflict/00-base.xml
deleted file mode 100644
index cc72e7b49..000000000
--- a/tests/dictionaries_old/80mode_leadership_conflict/00-base.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
-
- valfill
- leader
-
-
- follower1
- follower2
-
-
-
diff --git a/tests/dictionaries_old/80mode_leadership_conflict/__init__.py b/tests/dictionaries_old/80mode_leadership_conflict/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80mode_leadership_conflict/errno_63 b/tests/dictionaries_old/80mode_leadership_conflict/errno_63
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80multi_family_mode_conflict/00-base.xml b/tests/dictionaries_old/80multi_family_mode_conflict/00-base.xml
deleted file mode 100644
index 1ef22d25a..000000000
--- a/tests/dictionaries_old/80multi_family_mode_conflict/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80multi_family_mode_conflict/__init__.py b/tests/dictionaries_old/80multi_family_mode_conflict/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80multi_family_mode_conflict/errno_61 b/tests/dictionaries_old/80multi_family_mode_conflict/errno_61
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80nil_with_value/00-base.xml b/tests/dictionaries_old/80nil_with_value/00-base.xml
deleted file mode 100644
index 0d361343c..000000000
--- a/tests/dictionaries_old/80nil_with_value/00-base.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
- non
-
-
- non
-
-
- non
-
-
-
-
-
- value
- mode_conteneur_actif
- mode_conteneur_actif2
- afilllist
-
-
-
diff --git a/tests/dictionaries_old/80nil_with_value/__init__.py b/tests/dictionaries_old/80nil_with_value/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80nil_with_value/errno_40 b/tests/dictionaries_old/80nil_with_value/errno_40
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80no_leadership_index/00-base.xml b/tests/dictionaries_old/80no_leadership_index/00-base.xml
deleted file mode 100644
index 3f0131b12..000000000
--- a/tests/dictionaries_old/80no_leadership_index/00-base.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
- my_variable
-
-
-
diff --git a/tests/dictionaries_old/80no_leadership_index/__init__.py b/tests/dictionaries_old/80no_leadership_index/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80no_leadership_index/errno_60 b/tests/dictionaries_old/80no_leadership_index/errno_60
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80override_twice/00-base.xml b/tests/dictionaries_old/80override_twice/00-base.xml
deleted file mode 100644
index 5114fca26..000000000
--- a/tests/dictionaries_old/80override_twice/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80override_twice/__init__.py b/tests/dictionaries_old/80override_twice/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80override_twice/errno_69 b/tests/dictionaries_old/80override_twice/errno_69
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80redefine_double_error/00-base.xml b/tests/dictionaries_old/80redefine_double_error/00-base.xml
deleted file mode 100644
index 8c9d801f9..000000000
--- a/tests/dictionaries_old/80redefine_double_error/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80redefine_double_error/01-base.xml b/tests/dictionaries_old/80redefine_double_error/01-base.xml
deleted file mode 100644
index 9488593c2..000000000
--- a/tests/dictionaries_old/80redefine_double_error/01-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80redefine_double_error/02-base.xml b/tests/dictionaries_old/80redefine_double_error/02-base.xml
deleted file mode 100644
index 5f50358e4..000000000
--- a/tests/dictionaries_old/80redefine_double_error/02-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80redefine_double_error/__init__.py b/tests/dictionaries_old/80redefine_double_error/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80redefine_double_error/errno_48 b/tests/dictionaries_old/80redefine_double_error/errno_48
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80redefine_error/00-base.xml b/tests/dictionaries_old/80redefine_error/00-base.xml
deleted file mode 100644
index 8c9d801f9..000000000
--- a/tests/dictionaries_old/80redefine_error/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80redefine_error/01-redefine.xml b/tests/dictionaries_old/80redefine_error/01-redefine.xml
deleted file mode 100644
index 8c9d801f9..000000000
--- a/tests/dictionaries_old/80redefine_error/01-redefine.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80redefine_error/__init__.py b/tests/dictionaries_old/80redefine_error/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80redefine_error/errno_45 b/tests/dictionaries_old/80redefine_error/errno_45
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80redefine_fillerror/00-base.xml b/tests/dictionaries_old/80redefine_fillerror/00-base.xml
deleted file mode 100644
index 474e77565..000000000
--- a/tests/dictionaries_old/80redefine_fillerror/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
- valeur
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80redefine_fillerror/01-base.xml b/tests/dictionaries_old/80redefine_fillerror/01-base.xml
deleted file mode 100644
index bc69cd752..000000000
--- a/tests/dictionaries_old/80redefine_fillerror/01-base.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
- valeur
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80redefine_fillerror/__init__.py b/tests/dictionaries_old/80redefine_fillerror/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80redefine_fillerror/errno_24 b/tests/dictionaries_old/80redefine_fillerror/errno_24
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80redefine_notexists/00-base.xml b/tests/dictionaries_old/80redefine_notexists/00-base.xml
deleted file mode 100644
index 8c9d801f9..000000000
--- a/tests/dictionaries_old/80redefine_notexists/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80redefine_notexists/01-redefine.xml b/tests/dictionaries_old/80redefine_notexists/01-redefine.xml
deleted file mode 100644
index 887508846..000000000
--- a/tests/dictionaries_old/80redefine_notexists/01-redefine.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80redefine_notexists/__init__.py b/tests/dictionaries_old/80redefine_notexists/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80redefine_notexists/errno_46 b/tests/dictionaries_old/80redefine_notexists/errno_46
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80service_not_managed_overrides/00-base.xml b/tests/dictionaries_old/80service_not_managed_overrides/00-base.xml
deleted file mode 100644
index 4ab31bf6d..000000000
--- a/tests/dictionaries_old/80service_not_managed_overrides/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
- mailname
-
-
-
diff --git a/tests/dictionaries_old/80service_not_managed_overrides/__init__.py b/tests/dictionaries_old/80service_not_managed_overrides/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80service_not_managed_overrides/errno_66 b/tests/dictionaries_old/80service_not_managed_overrides/errno_66
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80services_ip_cidr_netmask/00-base.xml b/tests/dictionaries_old/80services_ip_cidr_netmask/00-base.xml
deleted file mode 100644
index 7bb0cce05..000000000
--- a/tests/dictionaries_old/80services_ip_cidr_netmask/00-base.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80services_ip_cidr_netmask/__init__.py b/tests/dictionaries_old/80services_ip_cidr_netmask/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80services_ip_cidr_netmask/errno_59 b/tests/dictionaries_old/80services_ip_cidr_netmask/errno_59
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80services_ip_netmask/00-base.xml b/tests/dictionaries_old/80services_ip_netmask/00-base.xml
deleted file mode 100644
index cc58453fd..000000000
--- a/tests/dictionaries_old/80services_ip_netmask/00-base.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80services_ip_netmask/__init__.py b/tests/dictionaries_old/80services_ip_netmask/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80services_ip_netmask/errno_59 b/tests/dictionaries_old/80services_ip_netmask/errno_59
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80services_ip_network_no_netmask/00-base.xml b/tests/dictionaries_old/80services_ip_network_no_netmask/00-base.xml
deleted file mode 100644
index 4d7db9610..000000000
--- a/tests/dictionaries_old/80services_ip_network_no_netmask/00-base.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80services_ip_network_no_netmask/__init__.py b/tests/dictionaries_old/80services_ip_network_no_netmask/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80services_ip_network_no_netmask/errno_64 b/tests/dictionaries_old/80services_ip_network_no_netmask/errno_64
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80services_ip_not_netmask/00-base.xml b/tests/dictionaries_old/80services_ip_not_netmask/00-base.xml
deleted file mode 100644
index fb6c6ddac..000000000
--- a/tests/dictionaries_old/80services_ip_not_netmask/00-base.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80services_ip_not_netmask/__init__.py b/tests/dictionaries_old/80services_ip_not_netmask/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80services_ip_not_netmask/errno_65 b/tests/dictionaries_old/80services_ip_not_netmask/errno_65
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80services_ip_wrong_type/00-base.xml b/tests/dictionaries_old/80services_ip_wrong_type/00-base.xml
deleted file mode 100644
index 4a32f9bd4..000000000
--- a/tests/dictionaries_old/80services_ip_wrong_type/00-base.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- nut_monitor_host
-
-
-
-
- 192.168.0.1
-
-
-
diff --git a/tests/dictionaries_old/80services_ip_wrong_type/__init__.py b/tests/dictionaries_old/80services_ip_wrong_type/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80services_ip_wrong_type/errno_70 b/tests/dictionaries_old/80services_ip_wrong_type/errno_70
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80target_list_unknown/00-base.xml b/tests/dictionaries_old/80target_list_unknown/00-base.xml
deleted file mode 100644
index 16a3d95a6..000000000
--- a/tests/dictionaries_old/80target_list_unknown/00-base.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
- True
- unknown
-
-
-
diff --git a/tests/dictionaries_old/80target_list_unknown/__init__.py b/tests/dictionaries_old/80target_list_unknown/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80target_list_unknown/errno_2 b/tests/dictionaries_old/80target_list_unknown/errno_2
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80unknown_type/00-base.xml b/tests/dictionaries_old/80unknown_type/00-base.xml
deleted file mode 100644
index cb8d20a56..000000000
--- a/tests/dictionaries_old/80unknown_type/00-base.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80unknown_type/__init__.py b/tests/dictionaries_old/80unknown_type/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80unknown_type/errno_43 b/tests/dictionaries_old/80unknown_type/errno_43
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_entier_invalid_param/00-base.xml b/tests/dictionaries_old/80valid_entier_invalid_param/00-base.xml
deleted file mode 100644
index 7a3086561..000000000
--- a/tests/dictionaries_old/80valid_entier_invalid_param/00-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- b
-
-
-
-
-
-
- 0
- int
-
-
-
diff --git a/tests/dictionaries_old/80valid_entier_invalid_param/__init__.py b/tests/dictionaries_old/80valid_entier_invalid_param/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_entier_invalid_param/errno_19 b/tests/dictionaries_old/80valid_entier_invalid_param/errno_19
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_entier_not_number/00-base.xml b/tests/dictionaries_old/80valid_entier_not_number/00-base.xml
deleted file mode 100644
index 90129a8e3..000000000
--- a/tests/dictionaries_old/80valid_entier_not_number/00-base.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- b
-
-
-
-
-
-
- 0
- 100
- int
-
-
-
diff --git a/tests/dictionaries_old/80valid_entier_not_number/__init__.py b/tests/dictionaries_old/80valid_entier_not_number/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_entier_not_number/errno_18 b/tests/dictionaries_old/80valid_entier_not_number/errno_18
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_entier_without_param/00-base.xml b/tests/dictionaries_old/80valid_entier_without_param/00-base.xml
deleted file mode 100644
index c059b4108..000000000
--- a/tests/dictionaries_old/80valid_entier_without_param/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- b
-
-
-
-
-
-
- int
-
-
-
diff --git a/tests/dictionaries_old/80valid_entier_without_param/__init__.py b/tests/dictionaries_old/80valid_entier_without_param/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_entier_without_param/errno_17 b/tests/dictionaries_old/80valid_entier_without_param/errno_17
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_enum_base_redefine/00-base.xml b/tests/dictionaries_old/80valid_enum_base_redefine/00-base.xml
deleted file mode 100644
index 2f2b57b90..000000000
--- a/tests/dictionaries_old/80valid_enum_base_redefine/00-base.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- c
-
-
- c
-
-
-
-
-
- a
- b
- c
- enumvar
-
-
- a
- b
- c
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/80valid_enum_base_redefine/01-base.xml b/tests/dictionaries_old/80valid_enum_base_redefine/01-base.xml
deleted file mode 100644
index 64ff8015f..000000000
--- a/tests/dictionaries_old/80valid_enum_base_redefine/01-base.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- c
-
-
-
-
-
- a
- c
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/80valid_enum_base_redefine/__init__.py b/tests/dictionaries_old/80valid_enum_base_redefine/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_enum_base_redefine/errno_3 b/tests/dictionaries_old/80valid_enum_base_redefine/errno_3
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_enum_multi_param/00-base.xml b/tests/dictionaries_old/80valid_enum_multi_param/00-base.xml
deleted file mode 100644
index c427f211d..000000000
--- a/tests/dictionaries_old/80valid_enum_multi_param/00-base.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
- a
-
-
- a
- b
- c
-
-
-
-
-
- var
- d
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80valid_enum_multi_param/__init__.py b/tests/dictionaries_old/80valid_enum_multi_param/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_enum_multi_param/errno_5 b/tests/dictionaries_old/80valid_enum_multi_param/errno_5
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_enum_multi_variable/00-base.xml b/tests/dictionaries_old/80valid_enum_multi_variable/00-base.xml
deleted file mode 100644
index 292c60260..000000000
--- a/tests/dictionaries_old/80valid_enum_multi_variable/00-base.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- a
-
-
- a
- b
- c
-
-
- a
- b
- c
-
-
-
-
-
- var
- var2
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80valid_enum_multi_variable/__init__.py b/tests/dictionaries_old/80valid_enum_multi_variable/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_enum_multi_variable/errno_5 b/tests/dictionaries_old/80valid_enum_multi_variable/errno_5
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_enum_no_param/00-base.xml b/tests/dictionaries_old/80valid_enum_no_param/00-base.xml
deleted file mode 100644
index 6a067d777..000000000
--- a/tests/dictionaries_old/80valid_enum_no_param/00-base.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- c
-
-
-
-
-
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/80valid_enum_no_param/__init__.py b/tests/dictionaries_old/80valid_enum_no_param/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_enum_no_param/errno_4 b/tests/dictionaries_old/80valid_enum_no_param/errno_4
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_enum_none_multi_variable/00-base.xml b/tests/dictionaries_old/80valid_enum_none_multi_variable/00-base.xml
deleted file mode 100644
index 76c6a85e5..000000000
--- a/tests/dictionaries_old/80valid_enum_none_multi_variable/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- a
-
-
- a
-
-
-
-
-
- var
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80valid_enum_none_multi_variable/__init__.py b/tests/dictionaries_old/80valid_enum_none_multi_variable/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_enum_none_multi_variable/errno_6 b/tests/dictionaries_old/80valid_enum_none_multi_variable/errno_6
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_enum_number_without_value/00-base.xml b/tests/dictionaries_old/80valid_enum_number_without_value/00-base.xml
deleted file mode 100644
index d0ed36d9f..000000000
--- a/tests/dictionaries_old/80valid_enum_number_without_value/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
-
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/80valid_enum_number_without_value/__init__.py b/tests/dictionaries_old/80valid_enum_number_without_value/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80valid_enum_number_without_value/errno_27 b/tests/dictionaries_old/80valid_enum_number_without_value/errno_27
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80value_not_multi/00-base.xml b/tests/dictionaries_old/80value_not_multi/00-base.xml
deleted file mode 100644
index 2e3d57be5..000000000
--- a/tests/dictionaries_old/80value_not_multi/00-base.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
- 192.168.0.1
- 192.168.0.2
-
-
-
diff --git a/tests/dictionaries_old/80value_not_multi/__init__.py b/tests/dictionaries_old/80value_not_multi/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80value_not_multi/errno_68 b/tests/dictionaries_old/80value_not_multi/errno_68
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80variable_accent/00-base.xml b/tests/dictionaries_old/80variable_accent/00-base.xml
deleted file mode 100644
index 91c184e77..000000000
--- a/tests/dictionaries_old/80variable_accent/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- non
-
-
-
-
-
- non
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80variable_accent/01-base.xml b/tests/dictionaries_old/80variable_accent/01-base.xml
deleted file mode 100644
index 470481fb5..000000000
--- a/tests/dictionaries_old/80variable_accent/01-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80variable_accent/02-base.xml b/tests/dictionaries_old/80variable_accent/02-base.xml
deleted file mode 100644
index a5fa78a92..000000000
--- a/tests/dictionaries_old/80variable_accent/02-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/80variable_accent/__init__.py b/tests/dictionaries_old/80variable_accent/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80variable_accent/errno_76 b/tests/dictionaries_old/80variable_accent/errno_76
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80variable_extra/00-base.xml b/tests/dictionaries_old/80variable_extra/00-base.xml
deleted file mode 100644
index 1b43cfb79..000000000
--- a/tests/dictionaries_old/80variable_extra/00-base.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80variable_extra/__init__.py b/tests/dictionaries_old/80variable_extra/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80variable_extra/errno_54 b/tests/dictionaries_old/80variable_extra/errno_54
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80variable_extra/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/80variable_extra/extra_dirs/extra/00-base.xml
deleted file mode 100644
index 01bb05214..000000000
--- a/tests/dictionaries_old/80variable_extra/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80variable_family_not_same_name/00-base.xml b/tests/dictionaries_old/80variable_family_not_same_name/00-base.xml
deleted file mode 100644
index 699d22928..000000000
--- a/tests/dictionaries_old/80variable_family_not_same_name/00-base.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80variable_family_not_same_name/__init__.py b/tests/dictionaries_old/80variable_family_not_same_name/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80variable_family_not_same_name/errno_56 b/tests/dictionaries_old/80variable_family_not_same_name/errno_56
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80variable_rougail/00-base.xml b/tests/dictionaries_old/80variable_rougail/00-base.xml
deleted file mode 100644
index 821d6eec2..000000000
--- a/tests/dictionaries_old/80variable_rougail/00-base.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/80variable_rougail/__init__.py b/tests/dictionaries_old/80variable_rougail/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80variable_rougail/errno_54 b/tests/dictionaries_old/80variable_rougail/errno_54
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80variable_up/00-base.xml b/tests/dictionaries_old/80variable_up/00-base.xml
deleted file mode 100644
index 6a17ac959..000000000
--- a/tests/dictionaries_old/80variable_up/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- non
-
-
-
-
-
- non
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/80variable_up/__init__.py b/tests/dictionaries_old/80variable_up/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/80variable_up/errno_76 b/tests/dictionaries_old/80variable_up/errno_76
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/81extra_externalspace/00-base.xml b/tests/dictionaries_old/81extra_externalspace/00-base.xml
deleted file mode 100644
index 0747d4f41..000000000
--- a/tests/dictionaries_old/81extra_externalspace/00-base.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
diff --git a/tests/dictionaries_old/81extra_externalspace/__init__.py b/tests/dictionaries_old/81extra_externalspace/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/81extra_externalspace/errno_41 b/tests/dictionaries_old/81extra_externalspace/errno_41
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/81extra_externalspace/extra_dirs/extra/00-base.xml b/tests/dictionaries_old/81extra_externalspace/extra_dirs/extra/00-base.xml
deleted file mode 100644
index e5eb20f02..000000000
--- a/tests/dictionaries_old/81extra_externalspace/extra_dirs/extra/00-base.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Exportation de la base de ejabberd
-
-
-
- pre
-
-
-
-
-
-
diff --git a/tests/dictionaries_old/81extra_externalspace/extra_dirs/extra1/00-base.xml b/tests/dictionaries_old/81extra_externalspace/extra_dirs/extra1/00-base.xml
deleted file mode 100644
index 50b1055af..000000000
--- a/tests/dictionaries_old/81extra_externalspace/extra_dirs/extra1/00-base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- test
-
-
-
-
-
- non
- activer_ejabberd
- none
- daily
- extra.ejabberd.day
-
-
-
diff --git a/tests/dictionaries_old/88valid_enum_not_number/00-base.xml b/tests/dictionaries_old/88valid_enum_not_number/00-base.xml
deleted file mode 100644
index 7e12737a0..000000000
--- a/tests/dictionaries_old/88valid_enum_not_number/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
-
-
-
-
- a
- b
- c
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/88valid_enum_not_number/__init__.py b/tests/dictionaries_old/88valid_enum_not_number/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/88valid_enum_not_number/errno_13 b/tests/dictionaries_old/88valid_enum_not_number/errno_13
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/88valid_enum_not_number2/00-base.xml b/tests/dictionaries_old/88valid_enum_not_number2/00-base.xml
deleted file mode 100644
index 48645ca0a..000000000
--- a/tests/dictionaries_old/88valid_enum_not_number2/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- non
-
-
-
-
-
- 1
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/88valid_enum_not_number2/__init__.py b/tests/dictionaries_old/88valid_enum_not_number2/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/88valid_enum_not_number2/errno_7 b/tests/dictionaries_old/88valid_enum_not_number2/errno_7
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/88valid_enum_not_number_variable/00-base.xml b/tests/dictionaries_old/88valid_enum_not_number_variable/00-base.xml
deleted file mode 100644
index b5bd54015..000000000
--- a/tests/dictionaries_old/88valid_enum_not_number_variable/00-base.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- str
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/88valid_enum_not_number_variable/__init__.py b/tests/dictionaries_old/88valid_enum_not_number_variable/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/88valid_enum_not_number_variable/errno_26 b/tests/dictionaries_old/88valid_enum_not_number_variable/errno_26
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/88valid_enum_numberdefaultstring/00-base.xml b/tests/dictionaries_old/88valid_enum_numberdefaultstring/00-base.xml
deleted file mode 100644
index b8921bb4e..000000000
--- a/tests/dictionaries_old/88valid_enum_numberdefaultstring/00-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- non
-
-
-
-
- a
-
-
-
-
-
- 1
- 2
- 3
- enumvar
-
-
-
diff --git a/tests/dictionaries_old/88valid_enum_numberdefaultstring/__init__.py b/tests/dictionaries_old/88valid_enum_numberdefaultstring/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/88valid_enum_numberdefaultstring/errno_15 b/tests/dictionaries_old/88valid_enum_numberdefaultstring/errno_15
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/88valid_enum_variable_optional/00-base.xml b/tests/dictionaries_old/88valid_enum_variable_optional/00-base.xml
deleted file mode 100644
index 456c870f8..000000000
--- a/tests/dictionaries_old/88valid_enum_variable_optional/00-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- a
-
-
- a
- b
- c
-
-
-
-
-
- var
- mode_conteneur_actif
-
-
-
diff --git a/tests/dictionaries_old/88valid_enum_variable_optional/__init__.py b/tests/dictionaries_old/88valid_enum_variable_optional/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/dictionaries_old/88valid_enum_variable_optional/errno_14 b/tests/dictionaries_old/88valid_enum_variable_optional/errno_14
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/eosfunc/test.py b/tests/eosfunc/test.py
index eec726c31..d45393e78 100644
--- a/tests/eosfunc/test.py
+++ b/tests/eosfunc/test.py
@@ -69,3 +69,11 @@ def calc_list(*args, **kwargs):
def test_index(index):
return index
+
+
+def return_no():
+ return 'no'
+
+
+def return_yes():
+ return 'yes'
diff --git a/tests/test_1_flattener.py b/tests/test_1_flattener.py
index 0edcda80f..b50ec973a 100644
--- a/tests/test_1_flattener.py
+++ b/tests/test_1_flattener.py
@@ -1,14 +1,11 @@
-from os import getcwd
-from os.path import isfile, join, isdir
from pytest import fixture, raises
-from os import listdir, environ, makedirs
-from json import load, dumps, loads
-from yaml import dump as ydump
-from shutil import rmtree
+from os import getcwd, listdir, environ, makedirs
+from os.path import isfile, join, isdir, dirname
+from shutil import rmtree, copyfile
environ['TIRAMISU_LOCALE'] = 'en'
-from rougail import RougailConvert, RougailConfig
+from rougail import Rougail, RougailConfig
from rougail.error import DictConsistencyError
@@ -32,10 +29,14 @@ for test in listdir(dico_dirs):
test_raise.add(test)
excludes = set([])
-#excludes = set(['45multi_family_order'])
+print('FIXME')
+excludes = set([
+ '80leadership_subfamily',
+ '80valid_enum_variables',
+])
test_ok -= excludes
test_raise -= excludes
-#test_ok = ['01base_file_mode']
+#test_ok = ['10frozenifin_unknown_valid_enum_number']
#test_ok = []
#test_raise = ['80auto_autofreeze']
#test_raise = []
@@ -50,232 +51,105 @@ test_raise = list(test_raise)
test_ok.sort()
test_raise.sort()
-test_dirs = []
-for ext in ['xml', 'yml']:
- for val in test_ok:
- test_dirs.append((ext, val))
-@fixture(scope="module", params=test_dirs)
+@fixture(scope="module", params=test_ok)
def test_dir(request):
return request.param
-test_err_dirs = []
-for ext in ['xml', 'yml']:
- for val in test_raise:
- test_err_dirs.append((ext, val))
-@fixture(scope="module", params=test_err_dirs)
+@fixture(scope="module", params=test_raise)
def test_dir_error(request):
return request.param
-def xml_to_yaml(filename, destfilename):
- import xmltodict
- def reorganize_variable(value, level):
- move = None
- new_value = []
- for type_ in ['variable', 'family']:
- if type_ in value:
- subvalue = value[type_]
- if isinstance(subvalue, list):
- values = []
- for val in subvalue:
- if 'variable' in val or 'family' in val:
- move_, val = reorganize_variable(val, level + 1)
- if move_:
- move = move_
- if filename == 'tests/dictionaries/45multi_family_order/xml/00-base.xml' and \
- val['@name'] == 'variable4':
- #hack
- move = val
- else:
- values.append(val)
- if values:
- new_value.append({type_: values})
- else:
- if 'variable' in subvalue or 'family' in subvalue:
- move_, subvalue = reorganize_variable(subvalue, level + 1)
- if move_:
- move = move_
- new_value.append({type_: [subvalue]})
- if level == 0:
- return new_value
- if level == 1 and move:
- new_value.append({'variable': [move]})
- dico = {k: v for k, v in value.items() if k not in ['variable', 'family']}
- dico['variables'] = new_value
- return move, dico
-
- def _xml_to_yaml(dico, root=False):
- for key, value in dict(dico).items():
- del dico[key]
- if root and key == 'variables':
- value = reorganize_variable(value, 0)
- if isinstance(value, dict):
- _xml_to_yaml(value)
- if isinstance(value, list):
- dico[key] = value
- for idx, val in enumerate(value):
- if isinstance(val, dict):
- _xml_to_yaml(val)
- elif isinstance(val, (str, bool)):
- dico[key][idx] = {'text': val}
- else:
- if value == 'True':
- value = True
- elif value == 'False':
- value = False
- else:
- converted = False
- try:
- # if it's a number
- nvalue = int(value)
- assert str(nvalue) == value
- value = nvalue
- converted = True
- except:
- pass
- if not converted:
- try:
- # if it's a number
- nvalue = float(value)
- assert str(nvalue) == value
- value = nvalue
- converted = True
- except:
- pass
- if key.startswith('@'):
- # remove @
- dico[key[1:]] = value
- elif key.startswith('#'):
- dico[key[1:]] = value
- else:
- if key not in ['variable', 'family'] and not isinstance(value, list):
- if not value:
- if key == 'override':
- dico[key] = value
- elif key == 'value':
- dico[key] = [{'text': value}]
- elif isinstance(value, (str, bool, int, float)):
- dico[key] = [{'text': value}]
- else:
- dico[key] = [value]
- else:
- dico[key] = value
- with open(filename, 'rb') as fh:
- dico = loads(dumps(xmltodict.parse(fh)['rougail'])) # , attr_prefix="")
- _xml_to_yaml(dico, root=True)
- with open(destfilename, 'w') as fh:
- ydump(dico, fh, sort_keys=False)
+def get_tiramisu_filename(test_dir, subdir, multi):
+ if not multi:
+ filename = 'base.py'
+ else:
+ filename = 'multi.py'
+ return join(test_dir, subdir, filename)
-def build_yml(test_dir, dirname):
- makedirs(dirname)
- for filename in listdir(join(test_dir, 'xml')):
- if not isfile(join(test_dir, 'xml', filename)):
- continue
- xml_to_yaml(join(test_dir, 'xml', filename), join(dirname, filename[:-4] + '.yml'))
- if isdir(join(test_dir, 'xml', 'subfolder')):
- makedirs(join(dirname, 'subfolder'))
- for filename in listdir(join(test_dir, 'xml', 'subfolder')):
- xml_to_yaml(join(test_dir, 'xml', 'subfolder', filename), join(dirname, 'subfolder', filename[:-4] + '.yml'))
- if isdir(join(test_dir, 'xml', 'extra_dirs')):
- makedirs(join(dirname, 'extra_dirs'))
- for extra in listdir(join(test_dir, 'xml', 'extra_dirs')):
- subfolder = join(test_dir, 'xml', 'extra_dirs', extra)
- if not isdir(subfolder):
- continue
- makedirs(join(dirname, 'extra_dirs', extra))
- for filename in listdir(subfolder):
- xml_to_yaml(join(test_dir, 'xml', 'extra_dirs', extra, filename), join(dirname, 'extra_dirs', extra, filename[:-4] + '.yml'))
-
-
-def load_rougail_object(test_dir, ext):
- if isfile(join(test_dir, f'no_{ext}')):
- return
+def load_rougail_object(test_dir, multi=False):
rougailconfig = RougailConfig.copy()
rougailconfig['functions_file'] = join(dico_dirs, '../eosfunc/test.py')
- dirs = [join(test_dir, ext)]
- if ext == 'yml' and not isdir(dirs[0]):
- build_yml(test_dir, dirs[0])
- subfolder = join(test_dir, ext, 'subfolder')
+ dirs = [join(test_dir, 'dictionaries', 'rougail')]
+ subfolder = join(test_dir, 'dictionaries', 'rougail2')
if isdir(subfolder):
dirs.append(subfolder)
rougailconfig['dictionaries_dir'] = dirs
rougailconfig['extra_dictionaries'] = {}
- if isdir(join(test_dir, ext, 'extra_dirs')):
- extras = listdir(join(test_dir, ext, 'extra_dirs'))
- extras.sort()
- for extra in extras:
- subfolder = join(test_dir, ext, 'extra_dirs', extra)
- if isdir(subfolder):
- rougailconfig['extra_dictionaries'][extra] = [subfolder]
- return RougailConvert(rougailconfig)
-
-
-def launch_flattener(eolobj, path_prefix=None):
- eolobj.load_dictionaries(path_prefix=path_prefix)
+ extras = listdir(join(test_dir, 'dictionaries'))
+ extras.sort()
+ for extra in extras:
+ if extra == 'services':
+ raise Exception('pfff')
+ if extra in ['rougail', 'rougail2']:
+ continue
+ subfolder = join(test_dir, 'dictionaries', extra)
+ if isdir(subfolder):
+ rougailconfig['extra_dictionaries'][extra] = [subfolder]
+ rougailconfig['tiramisu_cache'] = get_tiramisu_filename(test_dir, 'tmp', multi)
+ return Rougail(rougailconfig)
def save(test_dir, eolobj, multi=False):
- tiramisu_objects = eolobj.save(None)
- if 'children=[]' in tiramisu_objects.split('\n')[-2]:
- raise Exception('empty tiramisu object?')
- tiramisu_dir = join(test_dir, 'tiramisu')
+ tiramisu_tmp = get_tiramisu_filename(test_dir, 'tmp', multi)
+ tiramisu_tmp_dir = dirname(tiramisu_tmp)
+ if isdir(tiramisu_tmp_dir):
+ rmtree(tiramisu_tmp_dir)
+ makedirs(tiramisu_tmp_dir)
+ tiramisu_objects = eolobj.get_config()
+ tiramisu_file = get_tiramisu_filename(test_dir, 'tiramisu', multi)
+ tiramisu_dir = dirname(tiramisu_file)
if isdir(tiramisu_dir):
- if not multi:
- filename = 'base.py'
- else:
- filename = 'multi.py'
- tiramisu_file = join(tiramisu_dir, filename)
if not isfile(tiramisu_file) or debug:
- with open(tiramisu_file, 'w') as fh:
- fh.write(tiramisu_objects)
+ copyfile(tiramisu_tmp, tiramisu_file)
+ with open(tiramisu_tmp, 'r') as fh:
+ tiramisu_objects = fh.read()
with open(tiramisu_file, 'r') as fh:
tiramisu_objects_ori = fh.read()
assert tiramisu_objects == tiramisu_objects_ori
+ if isdir(tiramisu_tmp_dir):
+ rmtree(tiramisu_tmp_dir)
def test_dictionary(test_dir):
- ext, test_dir_ = test_dir
assert getcwd() == ORI_DIR
- test_dir_ = join(dico_dirs, test_dir_)
- eolobj = load_rougail_object(test_dir_, ext)
+ test_dir_ = join(dico_dirs, test_dir)
+ eolobj = load_rougail_object(test_dir_)
if not eolobj:
return
- launch_flattener(eolobj)
save(test_dir_, eolobj)
assert getcwd() == ORI_DIR
def test_dictionary_multi(test_dir):
- ext, test_dir_ = test_dir
assert getcwd() == ORI_DIR
- test_dir_ = join(dico_dirs, test_dir_)
- eolobj = load_rougail_object(test_dir_, ext)
+ test_dir_ = join(dico_dirs, test_dir)
+ eolobj = load_rougail_object(test_dir_, multi=True)
if not eolobj:
return
- launch_flattener(eolobj, path_prefix='1')
- launch_flattener(eolobj, path_prefix='2')
+ eolobj.add_path_prefix('1')
+ eolobj.add_path_prefix('2')
save(test_dir_, eolobj, multi=True)
assert getcwd() == ORI_DIR
-def test_error_dictionary(test_dir_error):
- ext, test_dir = test_dir_error
- assert getcwd() == ORI_DIR
- test_dir = join(dico_dirs, test_dir)
- errno = []
- eolobj = load_rougail_object(test_dir, ext)
- if eolobj is None:
- return
- for i in listdir(test_dir):
- if i.startswith('errno_'):
- errno.append(int(i.split('_')[1]))
- if not errno:
- errno.append(0)
- with raises(DictConsistencyError) as err:
- launch_flattener(eolobj)
- save(test_dir, eolobj)
- msg = str(err)
- assert err.value.errno in errno, f'expected errno: {errno}, errno: {err.value.errno}, msg: {err}'
- assert getcwd() == ORI_DIR
+#def test_error_dictionary(test_dir_error):
+# assert getcwd() == ORI_DIR
+# test_dir = join(dico_dirs, test_dir_error)
+# errno = []
+# eolobj = load_rougail_object(test_dir)
+# if eolobj is None:
+# return
+# for i in listdir(test_dir):
+# if i.startswith('errno_'):
+# errno.append(int(i.split('_')[1]))
+# if not errno:
+# errno.append(0)
+# with raises(DictConsistencyError) as err:
+# launch_flattener(eolobj)
+# save(test_dir, eolobj)
+# msg = str(err)
+# assert err.value.errno in errno, f'expected errno: {errno}, errno: {err.value.errno}, msg: {err}'
+# assert getcwd() == ORI_DIR
diff --git a/tests/test_2_makedict.py b/tests/test_2_makedict.py
index 8ef8460d8..4d3d93971 100644
--- a/tests/test_2_makedict.py
+++ b/tests/test_2_makedict.py
@@ -23,9 +23,15 @@ for test in listdir(dico_dirs):
debug = False
#debug = True
excludes = set([])
+print('FIXME')
+excludes = set([
+ '80leadership_subfamily',
+ '80valid_enum_variables',
+])
+
#excludes = set(['01base_file_utfchar'])
test_ok -= excludes
-#test_ok = ['10check_valid_ipnetmask']
+#test_ok = ['40ifin_leadershipauto_follower']
test_ok = list(test_ok)
diff --git a/tests/test_doc.py b/tests/test_doc.py
new file mode 100644
index 000000000..4405b0dd7
--- /dev/null
+++ b/tests/test_doc.py
@@ -0,0 +1,61 @@
+from pathlib import Path
+from pytest import fixture, raises
+from shutil import rmtree
+from rougail import Rougail, RougailConfig
+
+doc = Path('doc')
+tests = Path('tests')
+tmp = tests / 'tmp'
+RougailConfig['dictionaries_dir'] = [str(tmp)]
+RougailConfig['functions_file'] = str(tests / 'eosfunc' / 'test.py')
+
+
+scripts = {}
+for filename in doc.glob('*/*.md'):
+ filename = str(filename)
+ with open(filename) as fh:
+ yaml = False
+ redefine = False
+ new_script = ''
+ for line in fh.readlines():
+ if new_script and line == '```\n':
+ scripts.setdefault(filename, [])
+ if redefine:
+ scripts[filename][-1].append(new_script)
+ else:
+ scripts[filename].append([new_script])
+ yaml = False
+ redefine = False
+ if yaml:
+ if line.strip() == 'redefine: true':
+ redefine = True
+ new_script += line
+ if line == '```yml\n':
+ yaml = True
+ new_script = ''
+scripts_list = [(filename, script) for filename, scripts_ in scripts.items() for script in scripts_]
+
+
+@fixture(scope="module", params=scripts_list)
+def test_dir(request):
+ return request.param
+
+
+def test_scripts(test_dir):
+ if tmp.is_dir():
+ rmtree(tmp)
+ tmp.mkdir()
+ for idx, content in enumerate(test_dir[1]):
+ if not content.startswith('---'):
+ raise Exception(f'not a valid template in {test_dir[0]}')
+ filename = tmp / f'0{idx}-base.yml'
+ with open(filename, 'w') as fh:
+ fh.write(content)
+ rougail = Rougail()
+ try:
+ config = rougail.get_config()
+ config.value.dict()
+ except Exception as err:
+ #rmtree(tmp)
+ raise Exception(f'error in {test_dir[0]}: {err}') from err
+ rmtree(tmp)
diff --git a/tests/test_upgrade.py b/tests/test_upgrade.py
index d1535edff..0cdf2d8fc 100644
--- a/tests/test_upgrade.py
+++ b/tests/test_upgrade.py
@@ -1,4 +1,4 @@
-from shutil import rmtree, copyfile, copytree
+from shutil import rmtree #, copyfile, copytree
from os import getcwd, makedirs
from os.path import isfile, join, isdir
from pytest import fixture, raises
@@ -8,6 +8,11 @@ from json import load
from rougail import RougailUpgrade, RougailConfig
from rougail.error import DictConsistencyError
+#================================================
+class Variable:
+ description: str
+#================================================
+#================================================
dico_dirs = 'tests/dictionaries_old'
@@ -21,10 +26,8 @@ for test in listdir(dico_dirs):
test_ok.add(test)
excludes = set([])
-#excludes = set(['01base_file_utfchar'])
test_ok -= excludes
-#test_ok = ['00load_autofreeze']
-#test_ok = []
+#test_ok = ['10load_disabled_if_in_fill']
ORI_DIR = getcwd()
@@ -36,7 +39,7 @@ test_ok.sort()
if isdir(dest_dir):
rmtree(dest_dir)
makedirs(dest_dir)
-copyfile(join(dico_dirs, '__init__.py'), join(dest_dir, '__init__.py'))
+#copyfile(join(dico_dirs, '__init__.py'), join(dest_dir, '__init__.py'))
#RougailConfig['variable_namespace'] = 'configuration'
@@ -45,44 +48,76 @@ def test_dir(request):
return request.param
-def launch_test(test_dir):
- new_dest_dir = join(dest_dir, test_dir.rsplit('/', 1)[1])
- makedirs(new_dest_dir)
- upgrade = RougailUpgrade()
- try:
- upgrade.load_xml_from_folders(join(test_dir, 'xml'), new_dest_dir, RougailConfig['variable_namespace'], display=False)
- except Exception as err:
- # import traceback
- # traceback.print_exc()
- # print(f'cannot convert {test_dir}: {err}')
+def launch_test(test_dir, ext):
+ result_dest_dir = join(dico_dirs, test_dir.rsplit('/', 1)[1], 'result')
+ new_dest_dir = join(dico_dirs, test_dir.rsplit('/', 1)[1], dest_dir)
+ #FIXME
+ if isdir(new_dest_dir):
rmtree(new_dest_dir)
- copytree(test_dir, new_dest_dir)
- return
- subfolder = join(test_dir, 'subfolder')
- if isdir(subfolder):
- makedirs(join(new_dest_dir, 'subfolder'))
- upgrade.load_xml_from_folders(subfolder, join(new_dest_dir, 'subfolder'), RougailConfig['variable_namespace'], display=False)
- if isdir(join(test_dir, 'xml', 'extra_dirs')):
- extras = listdir(join(test_dir, 'extra_dirs'))
+ rougailconfig = RougailConfig.copy()
+ rougailconfig_dest = RougailConfig.copy()
+ rougailconfig_dest['functions_file'] = join(dico_dirs, '../eosfunc/test.py')
+ rougailconfig['dictionaries_dir'] = join(test_dir, 'xml')
+ rougailconfig_dest['dictionaries_dir'] = join(new_dest_dir, 'rougail')
+ rougailconfig_dest['services_dir'] = join(new_dest_dir, 'services')
+ rougailconfig['extra_dictionaries'] = {}
+ rougailconfig_dest['extra_dictionaries'] = {}
+ if isdir(join(test_dir, ext, 'extra_dirs')):
+ extras = listdir(join(test_dir, ext, 'extra_dirs'))
extras.sort()
for extra in extras:
- subfolder = join(test_dir, 'extra_dirs', extra)
+ subfolder = join(test_dir, ext, 'extra_dirs', extra)
if isdir(subfolder):
- makedirs(join(new_dest_dir, 'extra_dirs', extra))
- upgrade.load_xml_from_folders(subfolder, join(new_dest_dir, 'extra_dirs', extra), extra, display=False)
- # copy others files
- for filename in listdir(test_dir):
- src_filename = join(test_dir, filename)
- dst_filename = join(new_dest_dir, filename)
- if filename.startswith('errno_') or filename in ['__init__.py']:
- copyfile(src_filename, dst_filename)
- elif filename in ['tmpl', 'makedict', 'tiramisu', 'result', 'patches']:
- copytree(src_filename, dst_filename, symlinks=True)
- rmtree(dest_dir)
+ rougailconfig['extra_dictionaries'][extra] = [subfolder]
+ rougailconfig_dest['extra_dictionaries'][extra] = [join(new_dest_dir, extra)]
+ upgrade = RougailUpgrade(rougailconfig=rougailconfig)
+ upgrade.load_dictionaries(join(new_dest_dir, 'rougail'),
+ extra_dstfolder=new_dest_dir,
+ services_dstfolder=join(new_dest_dir, 'services'),
+ )
+ ori_lists = set()
+ find_files(result_dest_dir,
+ [],
+ ori_lists,
+ )
+ new_lists = set()
+ find_files(new_dest_dir,
+ [],
+ new_lists,
+ )
+ assert ori_lists == new_lists
+ for file in ori_lists:
+ ori_filename = join(result_dest_dir, file)
+ src_filename = join(new_dest_dir, file)
+ with open(ori_filename) as fh:
+ ori_file = fh.read()
+ with open(src_filename) as fh:
+ src_file = fh.read()
+ assert ori_file == src_file, f'file {ori_filename} and {src_filename} are differents'
+ #
+ rmtree(new_dest_dir)
+
+
+def find_files(dirname: str,
+ root: list,
+ files: set,
+ ) -> None:
+ for filename in listdir(dirname):
+ abs_dirname = join(dirname, filename)
+ root_file = root + [filename]
+ if isdir(join(dirname, filename)):
+ find_files(abs_dirname,
+ root_file,
+ files,
+ )
+ else:
+ files.add(join(*root_file))
def test_dictionary(test_dir):
assert getcwd() == ORI_DIR
test_dir = join(dico_dirs, test_dir)
- launch_test(test_dir)
+# FIXME for ext in ['xml', 'yml']:
+# launch_test(test_dir, ext)
+ launch_test(test_dir, 'xml')
assert getcwd() == ORI_DIR